执行预准备语句可提高重复使用的语句的性能。
前提条件
要成功运行该示例,需要以下系统特权。
Departments 表的 INSERT 特权
使用 SQLPrepare 准备语句。
例如,下面的代码段说明如何准备 INSERT 语句:
rc = SQLPrepare( stmt, "INSERT INTO Departments( DepartmentID, DepartmentName, DepartmentHeadID ) " "VALUES (?, ?, ?)", SQL_NTS ); |
在此示例中:
rc 接收返回代码,应测试这些代码来检查操作是成功还是失败。
stmt 提供语句句柄,供以后引用。
? 问号是表示语句参数的占位符。将占位符放入语句中是为了指明要访问的主机变量的位置。占位符可以是问号 (?),也可以是主机变量引用(主机变量名之前有一个冒号)。后一种情况下,在语句的实际文本中使用的主机变量名仅充当占位符,表示将会绑定对应的参数。它不需要与实际参数名一致。
使用 SQLBindParameter 绑定语句参数值。
例如,以下函数调用将绑定 DepartmentID 变量的值:
rc = SQLBindParameter( stmt, 1, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_INTEGER, 0, 0, &sDeptID, 0, &cbDeptID ); |
在此示例中:
rc 包含返回代码,应测试这些代码来检查操作是成功还是失败。
stmt 是语句句柄。
1 指示此调用设置第一个占位符的值。
SQL_PARAM_INPUT 指示该参数是输入语句。
SQL_C_SHORT 指示该应用程序中正在使用的 C 数据类型。
SQL_INTEGER 指示数据库中正在使用的 SQL 数据类型。
接下来的两个参数指示列的精度和小数位数:对于整数,这两个参数均为零。
&sDeptID 是指向参数值缓冲区的指针。
0 指示缓冲区的长度,以字节计。
&cbDeptID 是指向参数值长度缓冲区的指针。
捆绑其它两个参数并给 sDeptId 赋值。
执行该语句:
rc = SQLExecute( stmt ); |
第 2 至 4 步可重复执行多次。
删除语句。
删除语句将释放与语句本身相关联的资源。使用 SQLFreeHandle 可以删除语句。
有关 SQLPrepare 的详细信息,请参见 Microsoft 的ODBC API Reference中的 SQLPrepare,网址为 http://msdn.microsoft.com/zh-cn/library/ms710926.aspx。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |