📄 csdn_文档中心_使用odbcapi编写数据库应用程序.htm
字号:
用户口令长度<BR>返回值:<BR>SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, or
SQL_INVALID_HANDLE.<BR>成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。<BR><BR>下面的代码演示了如何使用ODBC
API的SQLConnect函数建立同数据源SQLServer的连接。<BR><BR>#include
“sqlext.h”<BR>SQLHENV henv;;<BR>SQLHDBC
hdbc;<BR>SQLHSTMT hstmt;<BR>SQLRETURN retcode;<BR>
/*Allocate environment handle */<BR>retcode =
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
<BR>if (retcode == SQL_SUCCESS ¦¦ retcode == SQL_SUCCESS_WITH_INFO)
{<BR>/* Set the ODBC version environment attribute */<BR>
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
(void*)SQL_OV_ODBC3, 0); <BR>if (retcode == SQL_SUCCESS ¦¦ retcode
== SQL_SUCCESS_WITH_INFO) {<BR>/* Allocate connection handle
*/<BR>retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
<BR>if (retcode == SQL_SUCCESS ¦¦ retcode == SQL_SUCCESS_WITH_INFO)
{<BR>/* Set login timeout to 5 seconds.
*/<BR>SQLSetConnectAttr(hdbc, (void*)SQL_LOGIN_TIMEOUT, 5, 0);<BR>/*
Connect to data source */<BR>retcode = SQLConnect(hdbc, (SQLCHAR*)
"Sales", SQL_NTS,<BR>
(SQLCHAR*) "JohnS", SQL_NTS,<BR>
(SQLCHAR*) "Sesame",
SQL_NTS);<BR>if (retcode == SQL_SUCCESS ¦¦ retcode ==
SQL_SUCCESS_WITH_INFO){<BR>/* Allocate statement handle
*/<BR>retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
<BR>if (retcode == SQL_SUCCESS ¦¦ retcode == SQL_SUCCESS_WITH_INFO)
{<BR>/* Process data */;<BR>SQLFreeHandle(SQL_HANDLE_STMT,
hstmt);<BR>}<BR>SQLDisconnect(hdbc);<BR>}<BR>SQLFreeHandle(SQL_HANDLE_DBC,
hdbc); <BR>}
<BR>}<BR>SQLFreeHandle(SQL_HANDLE_ENV,
henv);<BR>SQLDriveConnect<BR>函数SQLDriveConnect用一个连接字符串建立至数据源的连接。它可以提供比SQLConnect函数的三个参数更多的信息,可以让用户输入必要的连接信息。<BR>如果连接建立,该函数返回完整的字符串,应用程序可使用该连接字符串建立另外的连接。<BR>函数格式:<BR>SQLRETURN
SQLDriverConnect(SQLHDBC ConnectionHandle,SQLHWND
WindowHandle,SQLCHAR InConnectionString,SQLSMALLINT
StringLength1,SQLCHAR OutConnetionString,SQLSMALLINT
BufferLength,SQLSMALLINT *StringLength2Ptr,SQLSMALLINT
DriverCompletion);<BR>参数:<BR>ConnectionHandle 连接句柄<BR>WindowHandle
窗口句柄,应用程序可以用父窗口的句柄,或用NULL指针<BR>InConnectionString
连接字符串长度<BR>OutConnectionString 一个指向连接字符中的指针<BR>BufferLength
存放连接字符串的缓冲区的长度<BR>StringLength2Ptr 返回的连接字符串中的字符数<BR>DriverCompletion
额外连接信息,可能取值有:SQL_DRIVER_PROMPT,<BR>SQL_DRIVER_COMPLETE,
<BR>SQL_DRIVER_COMPLETE_REQUIRED,
or<BR>SQL_DRIVER_NOPROMPT.<BR>返回值:<BR>SQL_SUCCESS,
SQL_SUCCESS_WITH_INFO, SQL_ERROR, or
SQL_INVALID_HANDLE.<BR>成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。<BR><BR>SQLBrowseConnect<BR>函数SQLBrowseConnect支持以一种迭代的方式获取到数据源的连接,直到最后建立连接。它是基于客房机/服务器的体系结构,因此,本地数据库不支持该函数。<BR>一般,我们提供部分连接信息,如果足以建立到数据源的连接,则成功建立连接,否则返回SQL__NEED__DATA,并在OutConnectionString参数中返回所需要的信息。<BR>函数格式:<BR>SQLRETURN
SQLBrowseConnect(SQLHDBC ConnectionHandle,SQLCHAR*
InConnectionString,SQLSAMLLINT StringLength1,SQLCHAR*
OutConnectionString,SQLSMALLINT BufferLength,SQLSMALLINT
*StringLength2Ptr);<BR>参数:<BR>ConnectionHandle
连接句柄<BR>InConnectionString 指向输出字符串的指针<BR>StringLength1
输出字符串的指针长度<BR>OutConnectionString 指向输出字符串的指针<BR>BufferLength
用于存放输出字符串的缓冲区的长度<BR>StringLength2Ptr
实际返回的字符串的长度<BR><BR>返回值:<BR>SQL_SUCCESS, SQL_SUCCESS_WITH_INFO,
SQL_ERROR, or
SQL_INVALID_HANDLE.<BR>成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。<BR><BR>下面的代码讲述了如何使用ODBC
API的SQLBrowseConnect函数建立同数据源的连接。<BR><BR>#define BRWS_LEN
100SQLHENV <BR>henv;SQLHDBC hdbc;<BR>SQLHSTMT
hstmt;<BR>SQLRETURN retcode;<BR>SQLCHAR
szConnStrIn[BRWS_LEN], szConnStrOut[BRWS_LEN];<BR>SQLSMALLINT
cbConnStrOut;/* Allocate the environment handle. */<BR>retcode =
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
<BR>if (retcode == SQL_SUCCESS ¦¦
retcode == SQL_SUCCESS_WITH_INFO) {<BR> /* Set the version
environment attribute. */<BR> retcode = SQLSetEnvAttr(henv,
SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 0);<BR> if (retcode ==
SQL_SUCCESS ¦¦ retcode == SQL_SUCCESS_WITH_INFO) {<BR>
/* Allocate the connection handle. */<BR>
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);<BR>
if (retcode ==
SQL_SUCCESS<BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文档中心_使用ODBCAPI编写数据库应用程序.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16
hspace=1 src="CSDN_文档中心_使用ODBCAPI编写数据库应用程序.files/ico_pencil.gif" width=16>
</SPAN> king2k <I>(2001-5-10 14:27:35)</I> </TD></TR>
<TR>
<TD bgColor=#ffffff colSpan=3
width=532><BR>能不能在介绍一下如何调用SQLBulkOperation()插入数据。我调用此函数时的错误信息是“无效的光标位置”,真的是很迷茫
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16
hspace=1 src="CSDN_文档中心_使用ODBCAPI编写数据库应用程序.files/ico_pencil.gif" width=16>
</SPAN> zhangxiuyong <I>(2000-8-16 11:11:34)</I>
</TD></TR>
<TR>
<TD bgColor=#ffffff colSpan=3
width=532><BR>文章写得非常不错,不过这个过程太复杂,是否可以让计算机为你解决了
<BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你没有登陆,无法发表评论。 请先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=329">登陆</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文档中心_使用ODBCAPI编写数据库应用程序.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -