免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2336 | 回复: 2
打印 上一主题 下一主题

sybase Client-Library编程遇到错误,无法理解为什么出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-07 08:33 |只看该作者 |倒序浏览
问题是这样的:
我用sybase 的client-library 用c语言编了个客户端程序,主要就是连接服务器,运行1个use adatabase命令,和1个select 语句,然后读取返回的数据。
因为连接到服务器之后默认的数据库是master,所以必须先运行use adatabase。

我发现第一个语句能正确运行,但是第二个select语句就会报错,错误出在ct_send(command)。
但是如果我不运行use语句,直接select一下master数据库中的syslogins表格 ,则运行正常。真是怪了。

这是为什么呢?

程序如下:
<code>
int main(int argc,char **argv){
        CS_CONTEXT *pContext;
        CS_CONNECTION *pConnection;
        CS_COMMAND *pCommand0;
        CS_COMMAND *pCommand1;
        CS_INT dpt_no;
        CS_RETCODE ret;
        CS_CHAR *sqlstring0="use AABMIS";
        CS_CHAR *sqlstring1="select NAME,NO from DEPARTMENT  order by NO";
        CS_CHAR *sqlstring2="select * from syslogins";
        CS_CHAR * server="ysmis";
        CS_CHAR * username="sa";
        CS_CHAR * password="loginsybase";
        long l=0;
       
       
        init(&pContext);
        myconnect(pContext,&pConnection,server,username,password);
        ret=ct_cmd_alloc(pConnection,&pCommand0);
        exit_if(ret);
        ret=ct_command(pCommand0,CS_LANG_CMD,sqlstring0,CS_NULLTERM,CS_UNUSED);
        exit_if(ret);
        ret=ct_send(pCommand0);
        exit_if(ret);
       
        ret=ct_cmd_alloc(pConnection,&pCommand1);
        exit_if(ret);
        ret=ct_command(pCommand1,CS_LANG_CMD,sqlstring1,CS_NULLTERM,CS_UNUSED);
        exit_if(ret);       
        ret=ct_send(pCommand1);
        exit_if(ret);
        handle_returns(pCommand1,write_row_results);
        clean(pContext,pConnection);
        return 1;
}
/*注:省略了部分自定义函数myconnect、clean、handle_returns等*/
</code>

论坛徽章:
0
2 [报告]
发表于 2007-03-07 08:49 |只看该作者
在每一次发送完命令之后,都应该有相关的处理结果集的一个过程

论坛徽章:
0
3 [报告]
发表于 2007-03-07 09:06 |只看该作者

回复 2楼 hobbylu 的帖子

太太太神奇了
我现在还不明白,为什么连use adatabase这样的命令都得处理一下结果集,无非是调用了一下ct_results(pCommand,result_type)函数啊?

茅塞顿开
非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP