以下是我收集的一篇相关的文章,请大家参考,
谁做好了,请把原代码发给我:[email protected]如何利用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 "PROVIDER=MSDASQL;dsn=paradox7;uid=;pwd=;" 
Set adoRS = New Recordset 
adoRS.Open "select * from kmzd", db, adOpenStatic, adLockOptimistic 
 
二、利用ODBC API读取Paradox 7数据库 
 
Global Const SQL_SUCCESS As Long = 0 
Global Const SQL_DROP As Long = 1 
Declare Function SQLAllocEnv Lib _ 
"odbc32.dll" (phenv&) As Integer 
Declare Function SQLAllocConnect Lib _  
"odbc32.dll" (ByVal henv&,phdbc&) As Integer 
Declare Function SQLFreeEnv Lib 
"odbc32.dll" (ByVal henv&) As Integer 
Declare Function SQLConnect Lib _ 
"odbc32.dll" (ByVal hdbc&, ByVal szDSN$,_ 
ByVal cbDSN%, ByVal szUID$, ByVal cbUID%,_ 
ByVal szAuthStr$, ByVal cbAuthStr%) As Intege 
Declare Function SQLAllocStmt Lib _ 
"odbc32.dll" (ByVal hdbc&, phstmt&) As Integer 
Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hstmt&,_ 
ByVal szSqlStr$, ByVal cbSqlStr&) As Integer 
Declare Function SQLDisconnect Lib _ 
"odbc32.dll" (ByVal hdbc&) As Integer 
Declare Function SQLFreeConnect Lib _ 
"odbc32.dll" (ByVal hdbc&) As Integer 
Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal hstmt&,_ 
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 = "select * FROM kmzd" 
odbcrc = SQLExecDirect(hstmt, tmpStr, Len(tmpStr)) 
If odbcrc <> SQL_SUCCESS Then 
MsgBox "SQL语句执行失败" 
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环境下调试通过。