因需要与DOS下的应用程序共享数据库,我只能用foxpro 2.6,其中一个MTS组件的程序代码为:Public Function ResultRS(M_sql As String) As Recordset On Error GoTo DisposalError Dim M_DB As ADODB.Connection Set M_DB = New ADODB.Connection M_DB.Open "DSN=MiddlePara" Set ResultRS = New Recordset ResultRS.CursorLocation = adUseClient ResultRS.Open M_sql, M_DB, adOpenStatic, adLockReadOnly Set ResultRS.ActiveConnection = Nothing M_DB.Close Set M_DB = Nothing GetObjectContext.SetComplete Exit Function DisposalError: GetObjectContext.SetAbort Err.Raise Err.Number, "无法获取记录集", Err.Description End Function
2、使用OLEDB连接,与MTS交互注意不要使用cn参数传递,可将其连接字符串传递。
3、注意ADO的版本匹配。
On Error GoTo DisposalError Dim M_DB As ADODB.Connection
Set M_DB = New ADODB.Connection
M_DB.Open "DSN=MiddlePara" Set ResultRS = New Recordset
ResultRS.CursorLocation = adUseClient
ResultRS.Open M_sql, M_DB, adOpenStatic, adLockReadOnly Set ResultRS.ActiveConnection = Nothing
M_DB.Close
Set M_DB = Nothing GetObjectContext.SetComplete
Exit Function
DisposalError:
GetObjectContext.SetAbort
Err.Raise Err.Number, "无法获取记录集", Err.Description
End Function
好像不能用在MTS下,要用在MTS下的ODBC驱动程序必须符合一定的规范,看看MSKB: Q197815吧。