程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 在SCO下用gcc編譯調用mysql數據庫的一個小程序

在SCO下用gcc編譯調用mysql數據庫的一個小程序

編輯:關於MYSQL數據庫

環境:SCO OpenServer 5.0.6, MySQL 3.23.42,gcc 2.95.2

備注:gcc已集成了支持MySQL的函數,可以在C源代碼中直接調用數據庫,不用像informix那樣要用ESQL/C嵌入調用.

1.makefile文件

CC=gcc

LIB=-lcurses -lsocket -lMySQLclIEnt -lm -lc -lnsl

all:gspser

gspser:get_data.o getfileargv.o

$(CC) -o gj get_data.o getfileargv.o $(LIB)

get_data.o:get_data.c

$(CC) -c get_data.c

getfileargv.o:getfileargv.c

$(CC) -c getfileargv.c

clean:

rm -f *.o

2.get_data.c文件

#include

#include

#define DBCFG "./gsp.conf"

main()

{

char dbhost[32],dbuser[16],dbpasswd[16],db[16];

char query[256];

int count;

MYSQL * MySQL; /*表示對一個數據庫連接的句柄*/

MYSQL_RES *MySQL_res; /*代表返回行的一個查詢的結果*/

MYSQL_ROW MySQL_row; /*字符串數組*/

my_ulonglong rows;

/*該類型用於行編號和mysql_affected_rows()、mysql_num_rows()和MySQL_insert_id()

*/

getfileargv(DBCFG,"DBHOST",dbhost); /*從文件中讀取gsp.conf*/

getfileargv(DBCFG,"DBUSER",dbuser);

getfileargv(DBCFG,"DBPASSWD",dbpasswd);

getfileargv(DBCFG,"DATABASE",db);

if(!(mysql=mysql_init(NULL))) /*獲得或初始化一個MySQL結構*/

{

printf("MySQL_init失敗!");

mysql_close(MySQL);

exit(0);

}

if(!mysql_real_connect(MySQL,dbhost,dbuser,dbpasswd,db,0,NULL,0))

{ /*連接一個MySQL服務器*/

printf("連接服務器失敗,請聯系系統管理人員!");

mysql_close(MySQL);

exit(0);

}

strcpy(query,"select * from zuh where jgm=\"11110501\" order by zuh");

if(mysql_query(MySQL,query)) /*執行指定為一個空結尾的字符串的SQL查詢*/

{

printf("MySQL_query出錯!");

mysql_close(MySQL);

exit(0);

}

mysql_res=mysql_store_result(MySQL); /*檢索一個完整的結果集合給客戶*/

rows=mysql_num_rows(MySQL_res); /*返回一個結果集合重的列的數量*/

if(rows==0) /*此管理碼不存在 返回*/

{

printf("返回值為空");

mysql_free_result(MySQL_res); /*釋放一個結果集合使用的內存*/

mysql_close(MySQL); /*關閉一個服務器連接*/

exit(0);

}

for(count=0; count
{

mysql_row=mysql_fetch_row(MySQL_res); /*從結果集合中取得下一行*/

printf("社號:%s ",MySQL_row[0]);

printf("組號:%s ",MySQL_row[1]);

printf("組名:%s\n",MySQL_row[2]);

}

mysql_free_result(MySQL_res);

mysql_close(MySQL);

}

3.getfileargv.c文件

#include

int getfileargv(const char * filename,const char * argvname, char * retbuf)

{

FILE *fp;

char line[128];

char tempbuf[40];

strncpy(tempbuf,argvname,30);

tempbuf[39]=0;

if ((fp=fopen(filename,"r"))==NULL)

return -1;

strcat(tempbuf,"=");

while(fgets(line,120,fp))

{

if(line[0]=='#')

continue;

if (!strncmp(line,tempbuf,strlen(tempbuf)))

{

fclose(fp);

line[strlen(line)-1]=0;

strcpy(line,(char *)(strchr(line,'=')+1));

strcpy(retbuf,line);

return 0;

}

}

fclose(fp);

return -2;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved