- 论坛徽章:
- 15
|
本帖最后由 yulihua49 于 2012-06-14 21:03 编辑
哈哈,DTL与我的做法一模一样。
不过他是C++我是C的:- int unloadfile(T_SQL_Connect *SQL_Connect,char *tablename,FILE *ofd,
- char *where,int buflen)
- {
- char *p;
- DAU _DAU;
- int num,ret,cur;
- INT64 now;
- ShowLog(5,"unloadfile:entry dlmt=0X%02X",dlmt&255);
- ret=DAU_init(&_DAU,SQL_Connect,tablename,0,0);//对于给定的表名,生成映像模板和相应的数据结构
- if(ret) {
- ShowLog(1,"unloadfile:DAU_init tabname=%s,ret=%d",tablename,ret);
- return -1;
- }
- now=now_usec();
- ret=DAU_prepare(&_DAU,where);//生成语句,where的部分由外部提供
- ShowLog(5,"unldfile:ret=%d,stmt=%s",ret,where);
- if(ret) {
- ShowLog(1,"unloadfile:err=%d,%s",ret,where);
- return ret;
- }
- while(!DAU_next(&_DAU))) { //FETCH到DAU内部的结构
- //下边的这句话完成你所需的功能:
- DAU_pack(&_DAU,where);//DAU内部的结构 序列化到buffer where
- //形成 ....|......|....|...|的格式
- fprintf(ofd,"%s\n",where);//把where里的字符串送到网络也可以
- num+=ret;
- }
- DAU_free(&_DAU);
- ShowLog(2,"unload %s:rows=%d,INTERVAL=%d",tablename,num,(int)(now_usec() - now));
- return 0;
- }
复制代码 我的模板在8楼:
http://bbs.chinaunix.net/thread-3752484-1-1.html
看起来是不是很像DTL?
不知DTL什么年月的,我们这个用了好多年了。 |
|