1 . 初始化ODBC
在这个过程中,应用程序将通过调用SQLAlloEnv函数初始化ODBC接口,获取ODBC环境句柄。ODBC环境句柄是其它所有ODBC资源句柄的父句柄,因此无论程序将建立多少个ODBC连接,这个过程只需执行一次即可。例如:
rc=SQLAllocEnv(henv)获取ODBC环境句柄
DimrcAsIntegerODBC函数的返回码
DimhenvAsLongODBC环境句柄
二、与ODBC数据源建立连接
这个过程由下列两个步骤组成:
1、调用SQLAllocConnect函数获取连接句柄。例如:
DimhdbcAsLong连接句柄
rc=SQLAllocConnect(henv,hdbc)获取连接句柄
2、建立连接。这个步骤可以通过多种方法实现,最简单直观的方法是调用SQLConnect函数。例如:
DimDSNAsString,UIDAsString,PWDAsString
DSN="DataSourceName"ODBC数据源名称
UID="UserID"用户帐号
PWD="Password"用户口令
rc=SQLConnect(hdbc,DSN,Len(DSN),UID,Len(UID),PWD,Len(PWD))建立连接
三、存取数据
用户对ODBC数据源的存取操作,都是通过SQL语句实现的。在这个过程中,应用程序将通过连接向ODBC数据库提交SQL语句,以完成用户请求的操作。具体步骤如下:
1、调用SQLAllocStmt函数获取语句句柄。例如:
rc=SQLAllocStmt(hdbc,hstmt)
2、执行SQL语句。执行SQL语句的方法比较多,最简单明了的方法是调用SQLAllocStmt函数,例如:SQLstmt="SELECT*FROMauthors"
rc=SQLExecDirect(hstmt,SQLstmt,Len(SQLstmt))四、检索结果集
如果SQL语句被顺利提交并正确执行,那么就会产生一个结果集。检索结果集的方法有很多,最简单最直接的方法是调用SQLFetch和SQLGetData函数。SQLFetch函数的功能是将结果集的当前记录指针移至下一个记录,SQLGetData函数的功能是提取结果集中当前记录的某个字段值。通常可以采用一个循环以提取结果集中所有记录的所有字段值,该循环重复执行SQLFetch和SQLGetData函数,直至SQLFetch函数返回SQL_NO_DATA_FOUND,这表示已经到达结果集的末尾。
SQLFetch(hstmt)
whil (1)
{
rc=SQLGetData(hstmt,i,SQL_C_CHAR,ColVal,Len(ColVal),SQL_NULL_DATA);
SQLFetch(hstmt);
}
五、结束应用程序
在应用程序完成数据库操作,退出运行之前,必须释放程序中使用的系统资源。这些系统资源包括:语句句柄、连接句柄和ODBC环境句柄。完成这个过程的步骤如下:
1、调用SQLFreeStmt函数释放语句句柄及其相关的系统资源。例如:
rc=SQLFreeStmt(hstmt,SQL_DROP)
2、调用SQLDisconnect函数关闭连接。例如:
rc=SQLDisconnect(hdbc)
3、调用SQLFreeConnect函数释放连接句柄及其相关的系统资源。例如:
rc=SQLFreeConnect(hdbc)
4、调用SQLFreeEnv函数释放环境句柄及其相关的系统资源,停止ODBC操作。例如:
rc=SQLFreeEnv(henv)
此外,在编制程序时还有一个需要重点考虑的问题,这就是错误处理。所有ODBCAPI函数,若在执行期间发生错误,都将返回一个标准错误代码SQL_ERROR。一般来讲,在每次调用ODBCAPI函数之后,都应该检查该函数返回值,确定该函数是否成功地执行,再决定是否继续后续过程。而详细的错误信息,可以调用SQLError函数获得。SQLError函数将返回下列信息: