cygwin中写c语言程序,在windows下怎么利用Cygwin进行编程

Windows下使用C语言+嵌入SQL实现DB2开发 Cygwin,gcc的介绍和安装在前面的文章有将过,请参考

在Windows中使用Cygwin环境下的gcc编译器编译Informix ESQ/C程序

对于DB2的嵌入SQL程序,有以下步骤:

1)编写dbconn.sqc程序(一个简单的连接数据库,查询并显示的例子)2)在Cygwin命令行中键入 db2cmd 启动一个新的db2命令行窗口

在db2命令行窗口中:

3)预编译

db2 prep dbconn.sqc

生成dbconn.c文件

4)编译

gcc -I"C:\Program Files\IBM\SQLLIB\include" dbconn.c "C:\Program Files\IBM\SQLLIB\lib\db2api.lib"

生成a.exe文件

在文章中提到在使用gcc编译时如果路径中包含空格的路径,就不能正确解析。

这次发现可以将路径用双引号引起来就可以了。

5)执行a.exe,成功

如果需要生成外部绑定文件,(db2执行预编译时默认是做绑定了)

1)db2 prep dbconn.sqc bindfile

生成

dbconn.c, dbconn.bnd

2)手工绑定

db2 bind dbconn.bnd

3)绑定完后一定要重新编译,否则报-818,

db2 ? SQL0818

预编译时由预编译器生成的时间戳记与绑定时存在的包内的时间戳记不同

附录1

dbconn.sqc程序

#include

#include

#include

int main()

{

EXEC SQL INCLUDE SQLCA;

EXEC SQL BEGIN DECLARE SECTION;

char firstnme[12+1];

EXEC SQL END DECLARE SECTION;

long RetCode = SQL_RC_OK;

char ErrorMsg[1024];

EXEC SQL CONNECT TO sample USER zhangjij USING happyday;

EXEC SQL SELECT firstnme INTO :firstnme FROM employee WHERE empno='000099';

if (sqlca.sqlcode != SQL_RC_OK)

{

RetCode = sqlaintp(ErrorMsg, sizeof(ErrorMsg), 70, &sqlca);

switch (RetCode)

{

case -1:

printf("ERROR: Insufficient memory.\n");

break;

case -3:

printf("ERROR: Message file is inaccessible.\n");

break;

case -5:

printf("ERROR: Invalid SQLCA, bad buffer, or bad buffer length specified.\n");

break;

default:

printf("sqlca.sqlcode=[%ld], Message= [%s] \n", sqlca.sqlcode, ErrorMsg);

break;

}

}

printf("OK = [%s] \n", firstnme);

EXEC SQL DISCONNECT CURRENT;

return(0);

}

取消

评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值