當前位置:首頁 » 編程語言 » c語言開發資料庫

c語言開發資料庫

發布時間: 2022-08-30 07:46:50

c語言開發資料庫mysql 遇到的SOCKET 錯誤

#include <iostream>
#include <stdio.h>
#include "/home/mysql/include/mysql.h"
int main()
{
MYSQL mysql;
MYSQL_RES *result=NULL;
MYSQL_FIELD *field=NULL;
mysql_init(&mysql);
mysql_real_connect(&mysql, "localhost", "root", "neusoft", "test", 3306, NULL, 0);
// string sql = "create table a1(col int);";
// mysql_query(&mysql,"insert into a values(3);");

mysql_query(&mysql,"select col from a;");

result=mysql_store_result(&mysql);

int fieldcount = mysql_num_fields(result);

MYSQL_ROW row;
row = mysql_fetch_row(result);
while(NULL != row)
{
for(int i=0;i<fieldcount;i++)
{
//field=mysql_fetch_field_direct(result,i);
//printf("%s",row[i]);
std::cout<<row[i]<<std::endl;
}
//std::cout<<std::endl;
row = mysql_fetch_row(result);
}
//mysql_query(&mysql,sql.c_str());
mysql_close(&mysql);
}
這是我成功操作的代碼。。。。。

② C語言一個簡單資料庫怎麼做

這個要看你的平台的,什麼資料庫,什麼操作系統,什麼開發工具
目前,資料庫基本都支持SQL語言的(LZ的就是SQL語言),而不同的資料庫對C支持的方式也不同
如windwos平台,大部分資料庫都可用ADO
當然,資料庫本身也會提供C語言開發
如oracle,支持pro*c,oci等
先找本資料庫的書看下,明白SQL語言後再參考不同的平台,看下你而要的資料庫的開發方式.

③ C語言中如何做資料庫

你是要開發一個資料庫還是用c語言來編寫訪問資料庫的應用

④ C語言怎麼做網路和資料庫編程

使用ODBC進行資料庫編程。
1、配置ODBC數據源
2、使用SQL函數進行連接。

⑤ 用C語言如何對MySQL資料庫進行操作

里的大部分代碼參考了MySQL發行包裡面的.c源文件,大家也可以去裡面找找相關的代碼,下面這段代碼實現了連接到本地MySQL伺服器上9tmd_bbs_utf8資料庫,從數據表tbb_user中根據輸入的userid取得該用戶的用戶名並列印輸出到終端。
if defined(_WIN32) || defined(_WIN64)為了支持windows平台上的編譯
#include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include "mysql.h"

我的機器上該文件在/usr/local/include/mysql下
定義MySQL資料庫操作的宏,也可以不定義留著後面直接寫進代碼
define SELECT_QUERY "select username from tbb_user where userid = %d" int main(int argc, char **argv)char **argv 相當於 char *argv[] {

MYSQL mysql,*sock;定義資料庫連接的句柄,它被用於幾乎所有的MySQL函數
MYSQL_RES *res;查詢結果集,結構類型
MYSQL_FIELD *fd ;包含欄位信息的結構
MYSQL_ROW row ;存放一行查詢結果的字元串數組
char qbuf[160];存放查詢sql語句字元串
if (argc != 2) { //檢查輸入參數 fprintf(stderr,"usage : mysql_select <userid>\n\n"); exit(1); } mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql,"localhost","dbuser","dbpwd","9tmd_bbs_utf8",0,NULL,0))) { fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } sprintf(qbuf,SELECT_QUERY,atoi(argv[1])); if(mysql_query(sock,qbuf)) { fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0); return 0;

為了兼容大部分的編譯器加入此行
}
編譯的時候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 後面兩個選項可選,根據您的環境情況運行的時候,執行下面的命令
./mysql_select 1
將返回如下結果:
number of fields returned: 1 Ther userid #1 's username is: Michael query ok !

上面的代碼我想大部分都能看明白,不明白的可以參考一下MySQL提供的有關C語言API部分文檔,各個函數都有詳細說明,有時間我整理一份常用的API說明出來。

⑥ C語言資料庫是什麼

資料庫是用來存入數據的倉庫。用戶可以對文件中的數據進行新增、查詢、更新、刪除等操作。但是C語言和資料庫是兩個東西,他們之間的關系就是C語言可以用來開發資料庫管理軟體,也可以通過C語言藉助於SQL語句來操作資料庫。

C語言普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點,因此相對於其它編程語言,它具有自己獨特的特點。具體體現在以下三個方面:

其一,廣泛性。C 語言的運算范圍的大小直接決定了其優劣性。C 語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。此外,C 語言包含了字元型、指針型等多種數據結構形式,因此,更為龐大的數據結構運算它也可以應付。

其二,簡潔性。9 類控制語句和32個KEYWORDS是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同 時還能夠支持高級編程,避免了語言切換的繁瑣。


(6)c語言開發資料庫擴展閱讀

資料庫架構

1、內層:最接近實際存儲體,亦即有關數據的實際存儲方式。

2、外層:最接近用戶,即有關個別用戶觀看數據的方式。

3、概念層:介於兩者之間的間接層。

⑦ 如何用C語言編寫資料庫

可以用來編寫
層次型資料庫
和網狀資料庫
現在美國的幾家大型公司還在用c語言編寫的層次型的資料庫
雖然關系型資料庫使用相當廣泛但是
在一些具體的場合
速度都跟不上去,處理效率不高
同志的用c語言編寫的

你的勇氣可佳
好好乾將來必有前途

⑧ 怎樣用C語言編寫一個學生資料庫系統系統

這里有個現成的!拿去改改就行了!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include <winbase.h>
typedef struct node{ /* 定義鏈表 */
char name[20]; /* 姓名 */
char address[40]; /* 地址 */
char phone[15]; /* 電話 */
long zip; /* 郵編 */
struct node *next;
}add_list;
struct person{ /* 定義一個結構備用 */
char name[20];
char address[50];
char phone[15];
long zip;
};
FILE *fp;
add_list *tail,*head; /* 定義鏈表尾節點指針和頭指針 */
/* 從文件中讀出數據生成通訊錄鏈表,如果文件不存在,生成空鏈表 */
add_list *load(char filename[])
{ add_list *new1,*head;
struct person t;
head=(add_list *)malloc(sizeof(add_list));
tail=head=NULL;
if((fp=fopen(filename,"rb"))==NULL)
return head;
else
if(!feof(fp))
if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list)); /* 連入鏈表第一個節點 */
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;
head=tail=new1;
new1->next=NULL;
while(!feof(fp)) /* 連入鏈表其餘節點 */
{ if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list));
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;

tail->next=new1;
new1->next=NULL;
tail=new1;
}
}
}
fclose(fp);
return head;
}
/* 自定義函數,進度條 */

void jintiao(void)
{ int i;
for(i=0;i<78;i++) putchar('.');
printf("\r\a");
for(i=0;i<78;i++)
{
if(i==0) putchar('|');
Sleep(100);
printf("\b|>");
}
}
/* 插入一條通訊錄記錄 */
void insert(add_list **head)
{ add_list * new1;
new1=(add_list *)malloc(sizeof(add_list));
system("cls");
printf("\n請輸入姓名:"); getchar();gets(new1->name);
printf("\n請輸入地址:"); scanf("%s",new1->address);
printf("\n請輸入電話:"); scanf("%s",new1->phone);
printf("\n請輸入郵編:"); scanf("%ld",&new1->zip);
if(*head==NULL) /* 表頭為空時 */
{ *head=new1;
new1->next=NULL;
tail=new1;
}
else /* 插入到表尾 */
{ tail->next=new1;
new1->next=NULL;
tail=new1;
}
printf("輸入完成,按回車鍵返回......");
getchar();
getchar();
}
/* 將通訊錄鏈表中的內容保存到指定文件中 */
void save(add_list *head,char filename[])
{ add_list *p;
struct person t;
if((fp=fopen(filename,"wb"))==NULL)
{ printf("錯誤:不能打開文件%s\n",filename);
exit(1);
}
else
{ p=head;
while(p!=NULL)
{ strcpy(t.name,p->name);
strcpy(t.address,p->address);
strcpy(t.phone,p->phone);
t.zip=p->zip;
fwrite(&t,sizeof(struct person),1,fp);
p=p->next;
}
}
fclose(fp);
printf("保存成功,按回車鍵返回......");
getchar();getchar();
}
/* 顯示通訊錄內容 */
void display(add_list *head)
{ add_list *p;
p=head;
if(p!=NULL)
printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
p=p->next;
}
printf("按回車鍵返回......");
getchar();getchar();
}
/* 按姓名查詢通訊錄記錄 */
int search(add_list *head)
{ add_list *p;
char name[20];
int flag=0;
printf("請輸入要查找的人的姓名:");
getchar();
gets(name);
p=head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0)
{ printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
flag=1;
}
p=p->next;
}
return flag;
}
/* 按姓名刪除一條通訊錄記錄 */
int delete1(add_list **head)
{ add_list *p,*q,*t;
char name[20],c;
int flag=0;
printf("請輸入要刪除人的姓名:");
scanf("%s",name);
q=p=*head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0) /* 找到要刪除的人 */
{ printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
printf("真的要刪除嗎?(Y:是,N:否)\n"); /* 徵求意見(刪&不刪) */
getchar();c=getchar();
if(c=='y'||c=='Y') /* 刪除 */
{ if(p==*head)
*head=p->next;
else
q->next=p->next;
t=p;
p=p->next;
free(t);
flag=1;
}
else /* 不刪,跳過 */
{ q=p;
p=p->next;
flag=1;
}
}
else /* 沒找到,繼續 */
{ q=p;
p=p->next;
}
}
return flag;
printf("按回車鍵返回......");
getchar();
}
/* 顯示菜單並選擇菜單項 */
int menu_select()
{ char c;
system("cls");
printf("\t\t********************通訊錄********************\n");
printf("\t\t\t 1:輸入新的通訊記錄\n");
printf("\t\t\t\t 2:刪除記錄\n");
printf("\t\t\t\t 3:查找\n");
printf("\t\t\t\t 4:保存文件\n");
printf("\t\t\t 5:瀏覽所有通訊記錄\n");
printf("\t\t\t\t 6:退出\n");
do{
printf("請輸入你的選擇(1~~6):");
c=getchar();
}while(c<'1'||c>'6');
return c;
}
/* 主函數 */
int main(void)
{ char filename[20];
char c;
int t;
printf("\n\n\n\n\n\n\t\t\t\t通訊錄啟動中...\n\n\n\n\n\n\n\n\n\n\n\n\n");
jintiao();
system("cls");
printf("請輸入通訊錄文件名稱:\n");
scanf("%s",filename);
getchar();
head=load(filename);
while(1)
{ c=menu_select();
switch(c)
{ case '1': insert(&head); break;
case '2': t=delete1(&head);
if(!t) printf("記錯了吧,沒這人!\n按回車鍵返回......"); getchar();getchar(); break;
case '3': t=search(head);
if(!t) printf("天啊!居然沒找到!\n按回車鍵返回......");getchar(); break;
case '4': save(head,filename); break;
case '5': display(head); break;
case '6': exit(0);
}
}
}

⑨ 用C語言可以做一個資料庫程序嗎

可以的,建議你網路一下C語言學生信息管理系統。其實就是將數據寫入文件,然後進行讀取,查找的程序!

熱點內容
直鏈雲存儲 發布:2025-01-16 13:19:30 瀏覽:726
電腦主機伺服器多少錢 發布:2025-01-16 13:00:28 瀏覽:665
linuxoracle操作 發布:2025-01-16 12:40:50 瀏覽:47
河北存儲服務價格 發布:2025-01-16 12:39:21 瀏覽:345
掛機伺服器的搭建 發布:2025-01-16 12:34:07 瀏覽:417
安卓怎麼刪除信任憑證 發布:2025-01-16 12:22:06 瀏覽:338
代理編譯 發布:2025-01-16 12:07:59 瀏覽:794
伺服器為什麼老是無響應 發布:2025-01-16 12:07:59 瀏覽:894
安卓怎麼傳軟體到蘋果 發布:2025-01-16 12:01:28 瀏覽:955
pythonforzip 發布:2025-01-16 11:59:46 瀏覽:912