当前位置:首页 > 如何利用VB6读取Paradox 7数据库
如何利用VB6读取Paradox 7数据库
编程语言中,VB和Delphi是现今非常流行的,深受编程人员的喜爱。但在很多时间需要考虑数据共用的问题, 从Delphi 4版本开始, Paradox数据库从Paradox 5升级为Paradox 7,而在VB6中只能支持Paradox 5及其以下版本数据库,那么如何利用VB6读取Paradox 7数据库呢?我们做以下实验: 建立一Paradox 7数据库kmzd.db,字段如下: code A 10 name A 20
保存文件如d:\\kmzd.db。
进入VB6,建立一应用程序,打开程序窗口,添加Data控件Data1,设置Data1属性: connect Paradox 5.x; Databasename d:\\ RecordSource kmzd.db
添加DBGrid 控件DBGrid1,设置DBGrid1属性: DataSource Data1
然后运行程序,则屏幕会出现如下提示:
外部表不是预期的格式
采用程序代码方法去实现仍然不能读取,那么应如何去读取Paradox 7 数据库呢,多方求问没有结果,于是本人埋头实验,终于发现了解决的办法,为了不使别人再讨苦吃,我将方法告诉大家,以供参考。
首先,打开控制面板,设置ODBC数据源,其Name为:Paradox7,选取数据库版本为Paradox5.x,并设置其它属性。然后进入VB,编写程序实现如何读取Paradox 7数据库。 以下介绍两种VB6读取Paradox 7数据库的方法。
一、利用ADO读取Paradox 7数据库
Dim WithEvents adoRS As Recordset Dim db As Connection Set db = New Connection db.CursorLocation = adUseClient
db.Open \Set adoRS = New Recordset
adoRS.Open \
二、利用ODBC API读取Paradox 7数据库
Global Const SQL_SUCCESS As Long = 0 Global Const SQL_DROP As Long = 1 Declare Function SQLAllocEnv Lib _ \Declare Function SQLAllocConnect Lib _ \Declare Function SQLFreeEnv Lib \Declare Function SQLConnect Lib _ \ByVal cbDSN%, ByVal szUID$, ByVal cbUID%,_ ByVal szAuthStr$, ByVal cbAuthStr%) As Intege Declare Function SQLAllocStmt Lib _
\
Declare Function SQLExecDirect Lib \ByVal szSqlStr$, ByVal cbSqlStr&) As Integer Declare Function SQLDisconnect Lib _ \Declare Function SQLFreeConnect Lib _ \
Declare Function SQLFreeStmt Lib \ByVal fOption%) As Integer Dim tmpStr$
Dim odbcrc As Integer
Dim henv As Long, hdbc As Long, hstmt As Long Dim I As Integer, J As Integer
Dim DSN As String, UID As String, PWD As String
odbcrc = SQLAllocEnv(henv) If odbcrc <> 0 Then MsgBox \无法初始化ODBC\End End If
odbcrc = SQLAllocConnect(henv, hdbc) If odbcrc <> 0 Then MsgBox \无法获得连接句柄\odbcrc = SQLFreeEnv(henv) End End If
DSN = \Paradox7\UID = \PWD = \
odbcrc = SQLConnect(hdbc, DSN, Len(DSN), UID, Len(UID), PWD, Len(UID)) If odbcrc = SQL_ERROR Then
MsgBox \无法建立与ODBC数据源的连接\End End If
odbcrc = SQLAllocStmt(hdbc, hstmt) If odbcrc <> SQL_SUCCESS Then MsgBox \无法获得SQL语句句柄\End End If
tmpStr = \
odbcrc = SQLExecDirect(hstmt, tmpStr, Len(tmpStr)) If odbcrc <> SQL_SUCCESS Then MsgBox \语句执行失败\End End If
上述程序段之后,可编写程序利用ODBC API函数对数据库进行操作,完成后,执行如下程序段: odbcrc = SQLFreeStmt(hstmt, SQL_DROP) If hdbc <> 0 Then
odbcrc = SQLDisconnect(hdbc) End If
odbcrc = SQLFreeConnect(hdbc) If henv <> 0 Then
odbcrc = SQLFreeEnv(henv)
End If
其中有一关键问题就是,在ODBC中的Paradox驱动程序需要较高版本,我使用的版本是4.00.4202.00,如是3.xx.xxxx.xx就不行了。
以上程序在Windows98+VB6环境下调试通过。
共分享92篇相关文档