- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言操作数据库
C语言操作数据库 C语言操作数据库 如果一个ODBC API函数执行成功,则返回SQL_SUCCESS或SQL_SUCCESS_WITH_INFO,SQL_SUCCESS指示可通过诊断记录获取有关操作的详细信息,SQL_SUCCESS_WITH_INFO指示应用程序执行结果带有警告信息,可通过诊断记录获取详细信息。如果函数调用失败,返回码为SQL_ERROR。 SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,henv); 1. 初始化环境变量 在CLI中有三个句柄,分别是环境句柄、连接句柄、语句句柄。在初始化过程中首先要对前两个句柄逐一进行获取,获取成功后可连接数据库并获取第三个句柄。 SQLRETURN ret; SQLHENV henv; // 环境句柄 SQLHDBC hdbc; // 连接句柄 SQLHSTMT hstmt; // 语句句柄 SQLCHAR DBNAME[]=SAMPLE; //数据库名 SQLCHAR USERNAME[]=db2admin; // 用户名 SQLCHAR PSW[]=ibmdb2; // 口令 ret=SQLAllocEnv(henv) //分配环境句柄 ret=SQLAllocConnect(henv,hdbc) //分配连接句柄 ret=SQLSetConnectOption(hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF) //设置连接属性 ret=SQLConnect(hdbc,DBNAME,SQL_NTS,USERNAME,SQL_NTS,PSW,SQL_NTS) //连接数据库 ret=SQLAllocStmt(hdbc,hstmt) //分配语句句柄 上面的每个函数都有返回值,如果函数成功,ret值为SQL_SUCCESS,否则将返回错误代码。 2. 语句的执行 语句的执行分四个阶段:首先准备数据接收的缓冲区,然后执行准备好的SQL语句,第三步是将语句句柄和数据缓冲区进行绑定,最后获取数据。程序如下: char RowBuffer[100][200]; //数据缓冲区,其大小可自定义 typedef struct sqldat { SQLCHAR ColumnName[50]; SQLSMALLINT BufferLength; SQLSMALLINT NameLength; SQLSMALLINT DataType; SQLUINTEGER ColumnSize; SQLSMALLINT FAR DecimalDigitsPtr; SQLSMALLINT FAR NullablePtr; } sqldata; // 为第三步的绑定准备一个数据结构 sqldata RowDesc[100]; //用于绑定的变量,维数与缓冲区对应 memset(RowBuffer,64,100 200); //给缓冲区赋初始值,可以用于最后判断是否真正从数据库中获取了数据,这一步也可以省略 char tempsql[100]; sprintf(tempsql,select NAME from db2admin.STAFF where ID= %s ,Condition); // Condition为变量值,可由用户输入 sql=(SQLCHAR ) tempsql; ret=SQLPrepare(hstmt,sql,SQL_NTS) // 执行准备 ret=SQLExecute(hstmt) // 执行 执行成功后可进行绑定过程 SQLINTEGER nullindicator; SQLINTEGER displaysize[MAX_COLUMN]; SQLSMALLINT i; SQLSMALLINT num_columns; SQLNumResultCols(hstmt,num_columns); //准备绑定用的相关变量 for(i=1;i =num_columns;i++) { RowDesc[i-1].BufferLength=200; SQLDescribeCol(hstmt,i, RowDesc[i-1].ColumnName,RowDesc[i-1].BufferLength,(RowDesc[i-1].NameLength),(RowDesc[i-1].DataType),(RowDesc[i-1].ColumnSize),RowDesc[i-1].Deci
有哪些信誉好的足球投注网站
文档评论(0)