- 浏览: 1523757 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (532)
- 软件设计师 (7)
- PSP (5)
- NET MD (9)
- Hibernate (8)
- DIY (51)
- Work (43)
- GAME (24)
- 未分类 (44)
- iPod (6)
- MySQL (39)
- JSP (7)
- 日语能力考试 (36)
- 小说 (4)
- 豆包网 (23)
- 家用电脑 (7)
- DB2 (36)
- C/C++ (18)
- baby (9)
- Linux (13)
- thinkpad (23)
- OA (1)
- UML (6)
- oracle (24)
- 系统集成 (27)
- 脑梗塞 (6)
- 车 (8)
- MainFrame (8)
- Windows 7 (13)
- 手机 (8)
- git (12)
- AHK (2)
- COBOL (2)
- Java (9)
最新评论
-
安静听歌:
... ...
UUID做主键,好还是不好?这是个问题。 -
lehehe:
http://www.haoservice.com/docs/ ...
天气预报 -
lehehe:
[url http://www.haoservice.com/ ...
天气预报 -
liubang201010:
监控TUXEDO 的软件推荐用这个,专业,权威.并能提供报警和 ...
(转载)Tuxedo中间件简介 -
tinkame:
Next[j] =-1 当j=0时;=Max{k|0<k ...
KMP字符串模式匹配详解
DB2 通用数据库 iSeries 版 SQL 调用层接口(ODBC)
SQLPrepare — 准备语句
SQLPrepare() 使 SQL 语句与输入语句句柄相关联并将该语句发送至 DBMS 以进行准备。应用程序可以通过将该语句句柄传送给其它函数来引用这个准备好的语句。
如果已将语句句柄与 SELECT 语句配合使用,则在调用 SQLPrepare() 之前,必须调用 SQLFreeStmt() 来关闭游标。
语法
SQLRETURN SQLPrepare (SQLHSTMT hstmt,
SQLCHAR *szSqlStr,
SQLINTEGER cbSqlStr);
函数自变量
SQLHSTMT | hstmt | 输入 | 语句句柄。一定不能有打开的游标与 hstmt 相关联。 |
SQLCHAR * | szSqlStr | 输入 | SQL 语句字符串 |
SQLINTEGER | cbSqlStr | 输入 | szSqlStr 自变量的内容的长度。
必须将此长度设置为 szSqlstr 中的 SQL 语句的精确长度,或者,如果语句文本以空终止,则设置为 SQL_NTS。 |
用法
在使用 SQLPrepare() 准备语句之后,应用程序可通过调用下列函数来请求关于结果集的格式的信息(如果该语句是 SELECT 语句的话):
- SQLNumResultCols()
- SQLDescribeCol()
- SQLColAttributes()
可通过调用 SQLExecute() 来将准备好的语句执行一次或多次。在将该语句句柄与另一个SQLPrepare()、SQLExecDirect()、SQLColumns()、SQLSpecialColumns()、SQLStatistics() 或 SQLTables() 配合使用之前,该 SQL 语句将保持与该句柄相关联。
SQL 语句字符串可包含参数标记。参数标记由“?”字符表示,它用来指示语句中的一个位置,在调用 SQLExecute() 时,将在该位置替代应用程序变量的值。SQLBindParam() 用来将应用程序变量绑定到每个参数标记(使应用程序变量与参数标记相关联),以及指示在传送数据时是否应该执行任何数据转换。
SQL 语句不能是 COMMIT 或 ROLLBACK。必须通过调用 SQLTransact() 来发出 COMMIT 或 ROLLBACK。
如果 SQL 语句是定位型 DELETE 或定位型 UPDATE,则必须在同一个连接句柄下的单独语句句柄上定义该语句所引用的游标。
返回码
- SQL_SUCCESS
- SQL_SUCCESS_WITH_INFO
- SQL_ERROR
- SQL_INVALID_HANDLE
诊断
24000 | 游标状态无效 | 在指定的 hstmt 上存在打开的游标。 |
37xxx | 语法错误或访问违例 | szSqlStr 包含下列其中一项或多项:
|
HY001 | 内存分配失败 | 驱动程序无法分配支持此函数的执行或完成所必需的内存。 |
HY009 | 自变量值无效 | szSqlStr 是空指针。
自变量 cbSqlStr 小于 1,但不等于 SQL_NTS。 |
HY013 * | 内存管理问题 | 驱动程序无法访问支持此函数的执行或完成所必需的内存。 |
有关以下示例中使用的 check_error、initialize 和 terminate 函数的列表,请参考示例:交互式 SQL 和等价的 DB2 UDB CLI 函数调用。
/*************************************************************************
** file = prepare.c
**
** Example of preparing then repeatedly executing an SQL statement.
**
** Functions used:
**
** SQLAllocConnect SQLFreeConnect
** SQLAllocEnv SQLFreeEnv
** SQLAllocStmt SQLFreeStmt
** SQLConnect SQLDisconnect
**
** SQLBindCol SQLFetch
** SQLTransact SQLError
** SQLPrepare SQLSetParam
** SQLExecute
**************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sqlcli.h"
#define MAX_STMT_LEN 255
int initialize(SQLHENV *henv,
SQLHDBC *hdbc);
int terminate(SQLHENV henv,
SQLHDBC hdbc);
int print_error (SQLHENV henv,
SQLHDBC hdbc,
SQLHSTMT hstmt);
int check_error (SQLHENV henv,
SQLHDBC hdbc,
SQLHSTMT hstmt,
SQLRETURN rc);
/*******************************************************************
** main
** - initialize
** - terminate
*******************************************************************/
int main()
{
SQLHENV henv;
SQLHDBC hdbc;
SQLCHAR sqlstmt[MAX_STMT_LEN + 1]="";
SQLRETURN rc;
rc = initialize(&henv, &hdbc);
if (rc == SQL_ERROR) return(terminate(henv, hdbc));
{SQLHSTMT hstmt;
SQLCHAR sqlstmt[]="SELECT deptname, location from org where division = ?";
SQLCHAR deptname[15],
location[14],
division[11];
SQLINTEGER rlength,
plength;
rc = SQLAllocStmt(hdbc, &hstmt);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, SQL_NULL_HSTMT, rc);
/* prepare statement for multiple use */
rc = SQLPrepare(hstmt, sqlstmt, SQL_NTS);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, hstmt, rc);
/* bind division to parameter marker in sqlstmt */
rc = SQLSetParam(hstmt, 1, SQL_CHAR, SQL_CHAR, 10, 10, division,
&plength);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, hstmt, rc);
/* bind deptname to first column in the result set */
rc = SQLBindCol(hstmt, 1, SQL_CHAR, (SQLPOINTER) deptname, 15,
&rlength);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, hstmt, rc);
rc = SQLBindCol(hstmt, 2, SQL_CHAR, (SQLPOINTER) location, 14,
&rlength);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, hstmt, rc);
printf("\nEnter Division Name or 'q' to quit:\n");
printf("(Eastern, Western, Midwest, Corporate)\n");
gets(division);
plength = SQL_NTS;
while(division[0] != 'q')
{
rc = SQLExecute(hstmt);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, hstmt, rc);
printf("Departments in %s Division:\n", division);
printf("DEPTNAME Location\n");
printf("-------------- -------------\n");
while ((rc = SQLFetch(hstmt)) == SQL_SUCCESS)
{
printf("%-14.14s %-13.13s \n", deptname, location);
}
if (rc != SQL_NO_DATA_FOUND )
check_error (henv, hdbc, hstmt, rc);
SQLFreeStmt(hstmt, SQL_CLOSE);
printf("\nEnter Division Name or 'q' to quit:\n");
printf("(Eastern, Western, Midwest, Corporate)\n");
gets(division);
}
}
rc = SQLTransact(henv, hdbc, SQL_ROLLBACK);
if (rc != SQL_SUCCESS )
check_error (henv, hdbc, SQL_NULL_HSTMT, rc);
terminate(henv, hdbc);
return (0);
}/* end main */
参考
- SQLColAttributes — 列属性
- SQLDescribeCol — 描述列属性
- SQLExecDirect — 直接执行语句
- SQLExecute — 执行语句
- SQLNumResultCols — 获取结果列数
[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]
发表评论
-
(转)浅谈IBM DB2的数据库备份与恢复
2011-11-23 16:41 1807http://bzhang.mild.blog.163.com ... -
(转)DB2备份恢复数据库步骤
2011-11-23 16:23 914http://tech.it168.com/ibmtec ... -
(转)DB2 SQL Error: SQLCODE=-964, SQLSTATE=57011的原因及解决方法
2011-11-07 15:03 9463http://blog.sina.com.cn/s ... -
(转)DB2解决“数据库日志已满”操作 SQLCODE=-964
2011-11-07 14:49 2648http://www.db2china.ne ... -
(转)用哪个DB2命令查看DB2 instance是启动还是停止的?
2011-09-30 13:25 3613http://bbs.chinaunix.net/thre ... -
(转)论 LOAD 与 IMPORT 中的 codepage 转换
2011-07-11 14:55 1124http://www.ibm.com/develo ... -
(转)DB2导出数据库表结构和数据
2011-07-11 14:19 1522http://hi.baidu.com/mylovecha ... -
(转)DB2 9 中基于字符的字符串函数
2011-06-16 11:32 1396http://www.ibm.com/develo ... -
(转)db2look:生成 DDL 以便重新创建在数据库中定义的对象
2011-05-31 14:56 1616http://blog.csdn.net/hrfdotnet/ ... -
(转)【俊哥儿张】DB2:学习 DB2LOOK 命令
2011-05-31 14:54 1340http://space.itpub.net/770528 ... -
(转)Recreate optimizer access plans using db2look
2011-05-31 14:53 1243http://www.ibm.com/develo ... -
(转)DB2中ALTER TABLE为什么需要REORG操作?
2011-05-12 13:10 1640http://www.flatws.cn/article/ ... -
(转)DB2 3.2.2 表空间维护
2011-05-11 12:53 1149http://book.51cto.com/art/2 ... -
(转)DB2 数据类型
2011-05-11 12:52 3959http://hi.baidu.com/uvvv/blog ... -
(转)DB2 Basics: Table spaces and buffer pools
2011-05-06 15:29 1435http://www.ibm.com/develo ... -
(转)SQL1092N "USER" does not have the authority to perform therequested command -
2011-03-23 17:39 5434http://dbaspot.com/foru ... -
(转)DB2 sqlstate 57016 原因码 "7"错误详解
2011-03-07 17:38 1465http://www.db2china.net/clu ... -
(转)在英语 OS 上设置 DB2 UDB 版本 8 中的混合字节字符集(MBCS)数据库
2011-02-16 16:25 1567http://www.ibm.com/develo ... -
(转)DB2 CODEPAGE List
2011-02-15 15:15 1382http://www.db2china.net/hom ... -
(转)快速参考: DB2 命令行处理器(CLP)中的常用命令
2010-11-11 10:44 947http://www.ibm.com/develo ...
相关推荐
DB2 Universal Database for iSeries SQL Reference V5R3
C#连DB2库文件IBM.Data.DB2.iSeries.dll
数据库开发必备软件,全面支持常用数据库 Oracle 8i, 9i, 10g, 11g Microsoft SQL Server 2000, 2005, 2008, 2012, 2014 Windows SQL Azure 11 DB2 UDB 7.x, 8.x, 9.x, 10.x DB2 UDB for iSeries 5.x, 6.x, 7.x, 8.x...
db2_Database_administration_for_iSeriesdb2_Database_administration_for_iSeriesdb2_Database_administration_for_iSeriesdb2_Database_administration_for_iSeriesdb2_Database_administration_for_iSeries
支持10个主要的数据库系统:Oracle, SQL Server, DB2 UDB, DB2 for iSeries, Sybase ASE, Sybase SQL Anywhere, Postgre SQL, Amazon Redshift, MySQL, Microsoft Access等等 1、拥有可视SQL查询生成器 2、可轻松...
AS400_DB2驱动
连接字符串官方文档:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingres,Mimer SQL,Lightbase,PostgreSQL,Paradox,DNS,Firebird,Excel ,Text,DBF / ...
[资源已经测试 一切均...该软件支持 Windows、Mac OSX、Linux、Solaris 和 Java 平台上的 Oracle、DB2 for LUW、DB2 for iSeries、Microsoft SQL Server、MySQL、Sybase、Informix、Apache Derby 和 PostgreSQL 工具。
[资源已经测试 一切均...该软件支持 Windows、Mac OSX、Linux、Solaris 和 Java 平台上的 Oracle、DB2 for LUW、DB2 for iSeries、Microsoft SQL Server、MySQL、Sybase、Informix、Apache Derby 和 PostgreSQL 工具。
[资源已经测试 一切均...该软件支持 Windows、Mac OSX、Linux、Solaris 和 Java 平台上的 Oracle、DB2 for LUW、DB2 for iSeries、Microsoft SQL Server、MySQL、Sybase、Informix、Apache Derby 和 PostgreSQL 工具。
9.x, 10.x, 11.x DB2 UDB for iSeries 5.x, 6.x, 7.x SAP Sybase Adaptive Server Enterprise 12.x, 15.x SAP Sybase SQL Anywhere 9.x to 14.x (formerly Adaptive Server Anywhere) PostgreSQL 8.x, 9.x Amazon ...
DB2 UDB for iSeries 5.x, 6.x, 7.x SAP Sybase Adaptive Server Enterprise 12.x, 15.x SAP Sybase SQL Anywhere 9.x to 14.x (formerly Adaptive Server Anywhere) PostgreSQL 8.x, 9.x Amazon Redshift 1.0.x ...
第 4 章、为何选择IBM eServer iSeries……………………7 4.1、iSeries突出特点……………………8 4.2、先进的体系结构和性能……………………9 4.3、iSeries应用系统实现方式……………………11 4.4、双机热备份...
Oracle and Oracle Exadata Microsoft SQL Server and Microsoft Azure SQL MySQL MariaDB PostgreSQL Amazon Redshift, Amazon Aurora, Amazon RDS and Amazon Athena IBM DB2 LUW, iSeries (AS/400) and zSeries ...
本建议书体现了我们希望通过IBM iSeries解决方案帮助系统集成商工程师实现其业务目标的愿望。
DB2 UDB for iSeries MySQL 5.x Sybase ASE 12.x, 15.x Sybase ASA 7, 8, 9, 10, 11, 12 PostgreSQL 8.x, 9.x Microsoft Access 2003, 2007, 2010 Pre-configured targets: SQL Server Management Studio ...
DB2 AS400 驱动包
超经典,不下别后悔,内含超值知识点,IBM内部sql经典知识,还有内部讲义,即可让同学学习使用,又可以让老师讲课做讲义,非常超值!!!!
DB2的JDBC TYPE 2 驱动使 Java 应用程序通过JDBC调用DB2.对 DB2 JDBC type 2 driver 的调用被转换成 Java 本地方法.Java 使用这种驱动程序的应用程序必须运行在一个 DB2 客户机上,JDBC 请求通过这个客户机转到 DB2 ...
IBM iSeries 备份服务器(中文版)