摘要:
为执行操作准备SQL 字符串。并返回状态值。字符串长度应由“length”
参量给出。字符串必须包含1 条SQL 语句。不应为语句添加终结用分号(‘;’)
或\g。
通过将问号字符“?”嵌入到SQL 字符串的恰当位置,应用程序可包含SQL
语句中的一个或多个参数标记符。
标记符仅在SQL 语句中的特定位置时才是合法的。例如,它可以在INSERT
语句的VALUES()列表中
(为行指定列值)
,
或与WHERE 子句中某列的比较部分
(用
以指定比较值)
。但是,对于ID(例如表名或列名)
,不允许使用它们,不允许
GBase 8a 程序员手册C API 篇
- 64 -
南大通用数据技术股份有限公司
指定二进制操作符(如等于号“=”
)的操作数。后一个限制是有必要的,原因
在于,无法确定参数类型。一般而言,参数仅在DML(数据操作语言)语句中才
是合法的,在DDL(数据定义语言)语句中不合法。
执行语句之前,
必须使用gbase_stmt_bind_param(),
将参数标记符与应用
程序变量绑定在一起。
语法:
int gbase_stmt_prepare(GBASE_STMT *stmt, const char *query,
unsigned long length);
参数:
返回值:
如果成功处理了语句,返回0。如果出现错误,返回非0 值。
错误
CR_COMMANDS_OUT_OF_SYNC
以不恰当的顺序执行了命令。
CR_OUT_OF_MEMORY
内存溢出。
CR_SERVER_GONE_ERROR
GBase 服务器不可用。
CR_SERVER_LOST
查询过程中,与服务器的连接丢失。
CR_UNKNOWN_ERROR
出现未知错误。