谢 谢 收 藏 http://www.qqread.com/other-database/a225904001.html
不管是是控制面版里面配置ODBC数据源,还是象上面上的通过修改注册表在程序中动态的配置ODBC数据源,都没有离开数据源这个基本概念。在设置好了数据源之后,就可以在应用程序中连接数据源,然后对数据库中的数据进行数据的增加、删除和修改了。
对数据库中数据的访问,总的来说有两种方法,一种是通过编程环境提供的控件方法,一种就是通过ODBC API。有人也许会说还可以通过BDE的API,其实BDE的API和ODBC的API是同样的一个概念,BDE的API是Borland公司的,只是在他的编译环境下使用,当然,Borland的编译环境下比ODBC还快,但是因为那是他自带的驱动程序,如果数据库要升级的话,原来的BDE中的驱动程序就可能不能用了,所以,我们还是提倡使用ODBC的方法。
ODBC API函数中通过设置参数,直接和数据库打交道,这样的效率比较高,但是编程变的复杂,而且一不小心就会出错。我们不提倡直接使用ODBC API,而倾向于使用编程环境提供的控件方法来访问。但是,作为一种访问数据库访问的方法,我们在这里还是做一简单的介绍(这里以VB为例子)。(至于通过控件的方法,大家使用的比较多,这里就不多说了。)
ODBC API函数的声明方法与使用其它动态库函数一样,在VB中使用ODBC API函数之前,必须事先声明将要使用的函数、常量和数据结构。ODBC API函数驻留在ODBC运行动态库ODBC.DLL(16位)或ODBC32.DLL(32位)中,该动态库位于Windows子目录system中。通常做法是在VB项目中单独使用一个模块文件,然后将ODBC API声明语句加入其中。
下面就是本文实例中使用的模块文件module1.bas的内容。
Declare Function SQLAllocEnv Lib "odbc32.dll" (phenv&) As Integer
Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal henv&, phdbc&) As Integer
Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal hdbc&, phstmt&) AsInteger
Declare Function SQLConnect Lib "odbc32.dll" (ByVal hdbc&, ByVal szDSN$,ByVal cbDSN%,
ByVal szUID$, ByVal cbUID%, ByVal szAuthStr$, ByVal cbAuthStr%) As Integer
Declare Function SQLColAttributesString Lib "odbc32.dll" Alias "SQLColAttributes" (ByVal
hstmt&, ByVal icol%, ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%,
pcbDesc%, pfDesc&) As Integer
Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hdbc&) As Integer
Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hstmt&, ByVal szSqlStr$, ByVal
cbSqlStr&) As Integer
Declare Function SQLFetch Lib "odbc32.dll" (ByVal hstmt&) As Integer
Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal hdbc&) As Integer
Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal henv&) As Integer
Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal hstmt&, ByVal fOption%) As Integer
Declare Function SQLGetData Lib "odbc32.dll" (ByVal hstmt&, ByVal icol%,ByVal fCType%,
ByVal rgbValue As String, ByVal cbValueMax&, pcbValue&) As Integer
Declare Function SQLNumResultCols Lib "odbc32.dll" (ByVal hstmt&, pccol%) As Integer
Global Const SQL_C_CHAR As Long = 1
Global Const SQL_COLUMN_LABEL As Long = 18
Global Const SQL_DROP As Long = 1
Global Const SQL_ERROR As Long = -1
Global Const SQL_NO_DATA_FOUND As Long = 100
Global Const SQL_SUCCESS As Long = 0
(更多的ODBC API,可以在MSDN里面查到)另外,在VB子目录samples\remauto\db_odbc中有两个文本文件ODBC16.TXT和ODBC32.TXT,分别存有所有16位和32位ODBC API函数、常量和数据结构的声明语句,编程时可以从中拷贝所需的声明语句。
更多内容请看电脑配置手册、服务器配置专栏专题,或进入讨论组讨论。
不管是是控制面版里面配置ODBC数据源,还是象上面上的通过修改注册表在程序中动态的配置ODBC数据源,都没有离开数据源这个基本概念。在设置好了数据源之后,就可以在应用程序中连接数据源,然后对数据库中的数据进行数据的增加、删除和修改了。
对数据库中数据的访问,总的来说有两种方法,一种是通过编程环境提供的控件方法,一种就是通过ODBC API。有人也许会说还可以通过BDE的API,其实BDE的API和ODBC的API是同样的一个概念,BDE的API是Borland公司的,只是在他的编译环境下使用,当然,Borland的编译环境下比ODBC还快,但是因为那是他自带的驱动程序,如果数据库要升级的话,原来的BDE中的驱动程序就可能不能用了,所以,我们还是提倡使用ODBC的方法。
ODBC API函数中通过设置参数,直接和数据库打交道,这样的效率比较高,但是编程变的复杂,而且一不小心就会出错。我们不提倡直接使用ODBC API,而倾向于使用编程环境提供的控件方法来访问。但是,作为一种访问数据库访问的方法,我们在这里还是做一简单的介绍(这里以VB为例子)。(至于通过控件的方法,大家使用的比较多,这里就不多说了。)
ODBC API函数的声明方法与使用其它动态库函数一样,在VB中使用ODBC API函数之前,必须事先声明将要使用的函数、常量和数据结构。ODBC API函数驻留在ODBC运行动态库ODBC.DLL(16位)或ODBC32.DLL(32位)中,该动态库位于Windows子目录system中。通常做法是在VB项目中单独使用一个模块文件,然后将ODBC API声明语句加入其中。
下面就是本文实例中使用的模块文件module1.bas的内容。
Declare Function SQLAllocEnv Lib "odbc32.dll" (phenv&) As Integer
Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal henv&, phdbc&) As Integer
Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal hdbc&, phstmt&) AsInteger
Declare Function SQLConnect Lib "odbc32.dll" (ByVal hdbc&, ByVal szDSN$,ByVal cbDSN%,
ByVal szUID$, ByVal cbUID%, ByVal szAuthStr$, ByVal cbAuthStr%) As Integer
Declare Function SQLColAttributesString Lib "odbc32.dll" Alias "SQLColAttributes" (ByVal
hstmt&, ByVal icol%, ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%,
pcbDesc%, pfDesc&) As Integer
Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hdbc&) As Integer
Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hstmt&, ByVal szSqlStr$, ByVal
cbSqlStr&) As Integer
Declare Function SQLFetch Lib "odbc32.dll" (ByVal hstmt&) As Integer
Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal hdbc&) As Integer
Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal henv&) As Integer
Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal hstmt&, ByVal fOption%) As Integer
Declare Function SQLGetData Lib "odbc32.dll" (ByVal hstmt&, ByVal icol%,ByVal fCType%,
ByVal rgbValue As String, ByVal cbValueMax&, pcbValue&) As Integer
Declare Function SQLNumResultCols Lib "odbc32.dll" (ByVal hstmt&, pccol%) As Integer
Global Const SQL_C_CHAR As Long = 1
Global Const SQL_COLUMN_LABEL As Long = 18
Global Const SQL_DROP As Long = 1
Global Const SQL_ERROR As Long = -1
Global Const SQL_NO_DATA_FOUND As Long = 100
Global Const SQL_SUCCESS As Long = 0
(更多的ODBC API,可以在MSDN里面查到)另外,在VB子目录samples\remauto\db_odbc中有两个文本文件ODBC16.TXT和ODBC32.TXT,分别存有所有16位和32位ODBC API函数、常量和数据结构的声明语句,编程时可以从中拷贝所需的声明语句。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 基于pureXML技术的数据库表结构扩展 (4次浏览)
- 如何获得当前数据库对象依赖关系 (0次浏览)



