暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于GBase 8a ODBC 常见问题解答

三金先生 2023-06-27
155

支持动态游标

GBase 8a ODBC 8.3 除了支持只向前和静态游标类型还支持动态游标类型。 由于性能问题,驱动程序缺省是不支持这个特征。用户可以通过指明连接选项 标识 DYNAMIC_CURSOR=1 或从 DSN 配置中选中使用动态游标选项来使用这个特 征。


使用 unixODBC 访问 GBase 数据库时出现段错误

这是 unixODBC 的问题,通过在/etc/odbcinst.ini 文件中增加 DontDLClose=1 关键字可以解决该问题。


多线程使用 unixODBC 访问 GBase 数据库的配置

在多线程调用 unixODBC 访问 GBase 数据库时,可以在/etc/odbcinst.ini 文件中增加 threading=0 来提高并发。


GBase ODBC 驱动重复执行能够返回结果的 SQL 问题

如果应用像如下示例调用 ODBC 接口,那么 GBase ODBC 会在执行 SQLNumResultCols 时先在 Server 端执行一次 selectSql,然后在执行 SQLExecute 在 Server 端再执行一次 selectSql。

SQLPrepare(hstmt, selectSql, SQL_NTS);

SQLNumResultCols(hstmt, &tnum);

...

SQLExecute(hstmt); 第一次执行 selectSql 是为了获取结果集的 MetaData, 第二次执行SelectSql 时才会真正获取数据。


获取存储过程的结果集

使用 SQLPrepare 接口获取存储过程的结果集必须在调用 SQLExecute 后获 取结果集信息,否则获取不到结果集信息。


调用 SQLBindCol 时报错 Invalid descriptor index

正常情况下传给 SQLBindCol 的第二个参数 ColumnNumber 为 0 或者大于结 果集的列数时会报 Invalid descriptor index 错误。 当传入的 ColumnNumber 参数正确时,由于某种原因 gclusterd 主动 断开 了连接,也会导致 SQLBindCol 报错 Invalid descriptor index。比如当结果集 比较大时,ODBC 客户端应用不能及时从 ODBC 读取结果集,导致 gclusterd 向 ODBC 发送数据时写超时。这种情况在 gclusterd 的参数 "gcluster_send_client_data_timeout"默认值 30 时比较常见。这时需要修改 该参数值为一个较 大值或者直接修改为 0。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论