以下是我收集的一篇相关的文章,请大家参考,
谁做好了,请把原代码发给我:[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环境下调试通过。
谁做好了,请把原代码发给我:[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环境下调试通过。
解决方案 »
- 我在安装VB企业版时要产品的ID 谁帮帮我,我等着 谢谢
- 一个问题,大家帮帮忙啊,小弟感激不尽
- 局域网内的程序,要互相收发信息,用什么方法?
- 急求一个入门问题答案,在线等,拜托!!
- 我用MCI,mmcontrol播放avi的问题。
- 请教各位老师,知道了msh的某一行,如何才能定位到这一行并高亮度显示
- 谁能给俺讲一讲用crystal report做报表的过程,新手上路
- 菜单的高度问题
- 请问那里有关于科学型数学算法的程序代码?(如开多少次方等)
- 如何用VB编写密码登录程序???????????
- CreateObject("OWC.Spreadsheet")错误类型:Microsoft Office Web Components 9.0 (0x80070057)是怎么回事?!!!!!!!!!!!!!
- 显示器不同,程序运行的结果也不同!怪!
除非你装过paradox的环境