- 论坛徽章:
- 15
|
原帖由 BetonArmEE 于 2009-11-17 21:03 发表 ![]()
也就是说任务间通讯量大且复杂,可以考虑多线程,全局变量+锁用来交换数据比较合适,嗯嗯
给一个DAU的使用文档。它基于低级包装器SDBC-安全数据库连接。
比如配置管理,打开关闭数据库,数据库基础操作,日志管理什么的都在SDBC里
下边是一个DAU通用卸载程序,速度飞快,每秒5-6万记录吧:
- int unloadfile(T_SQL_Connect *SQL_Connect,char *tablename,FILE *ifd,FILE *ofd,int Pflg,char *where,int buflen)
- {
- char *p;
- DAU _DAU;
- int num,ret,cur;
- //我可不知道表名哦,运行时提交过来的。
- //SQL_Connect是事先打开的SDBC数据库句柄
- ret=DAU_init(&_DAU,SQL_Connect,tablename,0,0); //没有模板,由数据库根据表名生成模板
- if(ret) {
- ShowLog(1,"unloadfile:DAU_init tabname=%s,ret=%d",tablename,ret);
- return -1;
- }
- ret=DAU_prepare(&_DAU,where); //生成及prepare语句。
- ShowLog(5,"unldfile:ret=%d,stmt=%s",ret,where);
- if(ret) {
- ShowLog(1,"unloadfile:err=%d,%s",ret,where);
- return ret;
- }
- cur=_DAU.cursor;
- ret=1;
- num=0;
- while(p=___SQL_Fetch(SQL_Connect,cur,&ret)) {
- fprintf(ofd,"%sn",p);
- free(p);
- num+=ret;
- }
- DAU_free(&_DAU);//关闭游标和结果集。
- ShowLog(2,"unload %s:rows=%d",tablename,num);
- return 0;
- }
复制代码
[ 本帖最后由 yulihua49 于 2009-11-18 17:56 编辑 ] |
|