C:\dbase\clip53\PRG\stkmenu\WPACK3\
WPACKS.CFG (故意不使用.DBF)用于打开数据库和记录集的VB6 EXE中的ActiveX代码:
Function OpenDatabase(sFile As Variant, Optional sProvider As Variant = "Provider=Microsoft.Jet.OLEDB.4.0") As Variant ' ADODB.Connection
Dim nErr As Long
Dim sErr As String
Dim oConnection As Object 'ADODB.Connection
Set oConnection = CreateObject("ADODB.Connection")
On Error Resume Next
oConnection.open sProvider & ";Data Source=" & sFile
nErr = Err.Number
sErr = Err.Description
On Error GoTo 0
If nErr <> 0 Then
Err.Raise OPENDATABASE_E_NOTFOUND, , sErr
End If
Set OpenDatabase = oConnection
End Function
Function OpenRecordSet(ByRef oDb As Variant, sQuery As Variant, Optional bCmdText As Boolean = False) As Variant ''ADODB.Connection ADODB.Recordset
Const adOpenForwardOnly As Long = 0
Const adOpenStatic As Long = 3
Const adOpenDynamic As Long = 2
Const adOpenKeyset As Long = 1
Const adLockOptimistic As Long = 3
Const adCmdText As Long = 1
Dim oRecordSet As Object 'ADODB.Recordset
Set oRecordSet = CreateObject("ADODB.RecordSet")
If bCmdText Then
oRecordSet.open sQuery, , , adCmdText
Else
oRecordSet.open sQuery, oDb, adOpenKeyset, adLockOptimistic
End If
Set OpenRecordSet = oRecordSet
End Function访问这些方法的脚本看起来有点像VBScript。它是VBScript,但由前面提到的ActiveX EXE执行,该EXE使用MSScript控件,拥有一堆对象,可以将其提供给脚本引擎。一种VBScript在类固醇上的方法。
uses database
uses system
dim db
dim rs
set db = database.opendatabase("C:\dbase\clip53\PRG\stkmenu\WPACK3\","Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBase III;User ID=Admin;Password=")
set rs = database.openrecordset(db, "SELECT * FROM WPACKS.CFG",true)
system.consolewriteline rs.recordcount我的问题是,当The connection cannot be used to perform this operation. It is either closed or invalid in this context.访问oRecordSet.open sQuery, , , adCmdText (我从微软网站获得的)时,我一直得到它。
有点烦人。
发布于 2009-06-18 16:17:48
我在需要连接DBF文件时使用的连接字符串通常如下所示:
"Driver={Microsoft dBase Driver (*.dbf)};dbq=<filePath>"对我来说很好。
发布于 2009-06-18 16:11:51
尝试使用最新的和最伟大的FoxPro驱动程序。
https://stackoverflow.com/questions/1013553
复制相似问题