环境: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 /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; count
{
mysql_row=mysql_fetch_row(mysql_res); /*从结果集合中取得下一行*/
rintf("社号:%s ",mysql_row[0]);
rintf("组号:%s ",mysql_row[1]);
rintf("组名:%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];
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;
}
0
0
相关文章
如何查询表中数据_mysql select基础操作
mysql数据库第二范式如何理解_mysql表设计原则
mysql主从复制配置错误如何修复_mysql异常处理流程
如何在企业ERP系统中快速完成MySQL环境搭建 ERP数据库环境搭建与多模块集成
mysql如何配置字符集和排序规则_mysql字符集排序配置方法
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。
616
2026.02.13
本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。
194
2026.02.13
本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。
91
2026.02.13
本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。
20
2026.02.13
本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。
54
2026.02.13
本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。
15
2026.02.12
本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。
598
2026.02.12
本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。
56
2026.02.12
热门下载
相关下载
精品课程
最新文章

