SCO下用gcc编译调用mysql数据库的程序

2016-02-19 14:44 16 1 收藏

下面这个SCO下用gcc编译调用mysql数据库的程序教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - 编程语言 】

环境: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 stdio.h
  
  #include /usr/local/mysql/include/mysql.h
  
  #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结构*/
  
  {
  
  rintf("mysql_init失败!");
  
  mysql_close(mysql);
  
  exit(0);
  
  }
  
  if(!mysql_real_connect(mysql,dbhost,dbuser,dbpasswd,db,0,NULL,0))
  
  { /*连接一个MySQL服务器*/
  
  rintf("连接服务器失败,请联系系统管理人员!");
  
  mysql_close(mysql);
  
  exit(0);
  
  }
  
  trcpy(query,"select * from zuh where jgm="11110501" order by zuh");
  
  if(mysql_query(mysql,query)) /*执行指定为一个空结尾的字符串的SQL查询*/
  
  {
  
  rintf("mysql_query出错!");
  
  mysql_close(mysql);
  
  exit(0);
  
  }
  
  mysql_res=mysql_store_result(mysql); /*检索一个完整的结果集合给客户*/
  
  rows=mysql_num_rows(mysql_res); /*返回一个结果集合重的列的数量*/
  
  if(rows==0) /*此管理码不存在 返回*/
  
  {
  
  rintf("返回值为空");
  
  mysql_free_result(mysql_res); /*释放一个结果集合使用的内存*/
  
  mysql_close(mysql); /*关闭一个服务器连接*/
  
  exit(0);
  
  }for(count=0; countrows; count++)
  
  {
  
  mysql_row=mysql_fetch_row(mysql_res); /*从结果集合中取得下一行*/
  
  rintf("社号:%s ",mysql_row[0]);
  
  rintf("组号:%s ",mysql_row[1]);
  
  rintf("组名:%s",mysql_row[2]);
  
  }
  
  mysql_free_result(mysql_res);
  
  mysql_close(mysql);
  
  }
  
  3.getfileargv.c文件
  
  #include stdio.h
  
  int getfileargv(const char * filename,const char * argvname, char * retbuf)
  
  {
  
  FILE *fp;
  
  char line[128];
  
  char tempbuf[40];
  
  trncpy(tempbuf,argvname,30);
  
  tempbuf[39]=0;
  
  if ((fp=fopen(filename,"r"))==NULL)
  
  return -1;
  
  trcat(tempbuf,"=");
  
  while(fgets(line,120,fp))
  
  {
  
  if(line[0]=='#')
  
  continue;
  
  if (!strncmp(line,tempbuf,strlen(tempbuf)))
  
  {
  
  fclose(fp);
  
  line[strlen(line)-1]=0;
  
  trcpy(line,(char *)(strchr(line,'=')+1));
  
  trcpy(retbuf,line);
  
  return 0;
  
  }
  
  }
  
  fclose(fp);
  
  return -2;
  
  }

来源:http://www.tulaoshi.com/n/20160219/1607758.html

延伸阅读
像PHP和perl一样,MySQL也提供的C语言使用的API. C代码的API是随MySQL一起发布的. 它包含在mysqlclient库中, 可以使C程序来访问数据库. MySQL源码包中的许多客户端都是用C写的. 如果你正在找使用这些C API的例子, 可以看看客户端的写法.你可以在MySQL源码包的clients目录找到这些例子. 软件包 请确保你已经安装了必要...
标签: MySQL mysql数据库
 MySQL 版本:4.1 环境介绍:主库 192.168.0.205 从库 192.168.0.206 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_name 2、主库增加用户,用于从库读取主库日志。 grant replication slave,reload,super on *.* to ’slave’@’192.168.0.206’ identified by ’123456’ 3、从库连接主库...
只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup -------------------------------------------------------------------------------- 第二步:编写备份脚本代...
标签: PHP
  小生近日来学习Mysql数据库,自己编写一个用IE远程创建Mysql数据库的简易程序,此程序适用与对Mysql数据库一无所知的人,可以轻松的创建Mysql数据库及数据库中的各种类型的表,而且完全是图形界面,你甚至可以一句sql语句都不知道,我编写的这个程序可能尚还十分简陋,在此我只想起一个抛砖引玉的作用,希望大家能不断完善此程序,做一个真正意义...
以下是引用片段: Dim db As ADODB.Connection   Dim i As Integer '用来标记前一个控件的编号   Dim ii As Integer '用来标记目前控件的标号   Dim path As String   Set db = New ADODB.Connection       db.CursorLocation = adUseClient '设置游标引擎的位置为客户游标。  &...

经验教程

72

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部