返回首页

gbase数据、南大通用产品文档:GBase8a使用unixODBC 访问GBase 数据库时出现段错误

更新日期:2024年09月11日

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

即使所有软件都没有错误且所有硬件都完全可靠,计算机外部的世界也可干扰它。闪电可
能击中建筑物,中断供电并在您的 UPDATE 语句运行期间停止计算机。当磁盘已满或用
户提供不正确的数据时,更可能发生的情景是,导致您的多行插入过早停止并产生错误。
在任何情况下,每当您修改数据,您必须假设某种不可预测的事件可中断该修改。
当外部原因导致修改中断时,您不可确定该操作完成了多少。即使在单行操作中,您也不
可知道是否正确地更新了到达了磁盘的数据或索引。
如果多行修改是一个问题,则多语句修改就更糟。通常在程序中嵌入它们,因此您看不到
正在执行的个别 SQL 语句。例如,要在演示数据库中输入新的订单,请执行下列步骤:
1. 在 orders 表中插入一行。(此插入生成一个订单编号。)
2. 对于订购的每一商品,在 items 表中插入一行。
存在两种编制订单输入应用程序的方法。一种方法是使它完全是交互的,以便程序立即插
入第一行,然后在用户输入时插入每一商品。但这种方法使得操作可能遭遇许多更不可预
测的事件:客户的电话电线,用户按错键,用户的终端或计算机断电,等等。
下列列表描述构建订单输入应用程序的正确方法:

以交互方式接受所有数据。

验证数据并展开它(例如,在 stock 和 manufact 中查找代码)。

在屏幕上显示信息以进行检查。

等待操作人员进行最终的提交。

快速地执行插入。
即使使用这些步骤,不可预测的情况还可在它插入该订单之后,但在它完成插入商品之前
停止该程序。如果发生那种情况,则数据库处于不可预测的状态:它的数据完整性受到损
害。

GBase JDBC 是一种兼容JDBC 规范3.0、4.0(类型4)的驱动,这意味着
它是符合JDBC 3.0、4.0 版本规范的一种纯Java 程序,并能使用GBase 协议直
接和GBase 服务器通信。
GBase JDBC 为使用JAVA 程序语言的客户端应用提供
访问GBase 8s 接口。