/*******************************************
***** 函数功能 :
***** 抽取数据库记录
*****
********************************************/
int extract_data(char *efilename,const char *sqlname)
{
FILE *fpWrite;
EXEC SQL BEGIN DECLARE SECTION;
varchar v_str_sql[+]; /*SQL语句 */
varchar vc_expcol[MAXLEN];
EXEC SQL END DECLARE SECTION;
/**/
strcpy((char *)v_str_sql.arr,sqlname);
v_str_sql.len=strlen((char*)v_str_sql.arr);
#ifdef DEBUG
printf("SQL语句%s.\n",v_str_sql.arr);
#endif
EXEC SQL WHENEVER SQLERROR GOTO prepare_exp_error;
if ((fpWrite = fopen(efilename, "w+")) == NULL)
{
fprintf(stderr,"Cannot open data file %s\n", efilename);
exit();
}
/*声明游标处理方式*/
EXEC SQL PREPARE sqlstmt FROM :v_str_sql;
EXEC SQL DECLARE extract_cur CURSOR FOR sqlstmt;
EXEC SQL OPEN extract_cur;
for(;;)
{
/*提取数据*/
EXEC SQL FETCH extract_cur INTO :vc_expcol ;
if (sqlca.sqlcode == )
{
fprintf(stderr,"数据已经抽取完成或是没有符合条件的数据!\n");
break;
}
vc_expcol.arr[vc_expcol.len] = '\0';
/*将输出数据记录到文件中*/
fprintf(fpWrite,"%s\n",vc_expcol.arr );
}
/*关闭文件*/
fclose(fpWrite);
/*关闭游标*/
EXEC SQL CLOSE extract_cur;
return SUCCESS;
prepare_exp_error:
/*记录错误信息*/
fprintf(stderr,"\n%70s\n",sqlca.sqlerrm.sqlerrmc);
fprintf(stderr,"数据库操作错误!退出!");
return FAILUER;
}

最新文章

  1. 开园第一篇 - 论移动开发环境 IOS与Android的差异
  2. kali linux 2016.1 滚动更新源
  3. System.Net.WebException : The remote server returned an error: (415) UNSUPPORTED MEDIA TYPE
  4. Restful是什么,SOAP Webservice和RESTful Webservice
  5. WebForm之FileUpload控件(文件上传)
  6. web.xml文件中配置<mime-mapping>下载文件类型
  7. 软件工程 speedsnail 冲刺2
  8. leetcode:Isomorphic Strings
  9. Looksery Cup 2015 A. Face Detection 水题
  10. struts2多文件上传(带进度条)demo+说明
  11. Difference between Tomcat's extraResourcePaths and aliases to access an external directory--转
  12. Jmeter接口压力测试
  13. 在.net下打造mongoDb基于官方驱动最新版本
  14. LeetCode链表解题模板
  15. TSPL学习笔记(2):过程和变量绑定
  16. 【2017-03-02】C#函数,递归法
  17. lambda表达式底层处理机制
  18. 在Python中进行自动化单元测试的教程
  19. 2017/05/20 java 基础 随笔
  20. StackPanel

热门文章

  1. FineReport实现java报表多级上报的效果图
  2. 【精】cookie、 sessionStorage 、localStorage之间的异同
  3. 【Python + ATX基于uiautomator2】之编写unittest自动化测试脚本
  4. Erlang 和 Elixir的差异
  5. TP3.2 引入微信类
  6. 切比雪夫多项式(Chebyshev Polynomials)
  7. 创建一个视图JSP文件的helloWorld.jsp
  8. JAVA 虚拟机内存
  9. 【动态规划】skiing
  10. 控制器post参数接收