gpt4 book ai didi

oracle - MS-Access ODBC 连接到 Oracle for SQL

转载 作者:行者123 更新时间:2023-12-04 07:09:14 24 4
gpt4 key购买 nike

我正在尝试使用 Access 2003 连接到 Oracle 数据库。

我想使用 ODBC 连接并且我想设置它以便用户不需要输入密码。

我遇到的问题之一是我的 sql 查询使用 INTERFACE.Products 并且 Access 看到句点并认为我正在尝试打开一个文件。 IE Interface.MDB,当那是我的 sql 查询的一部分时。

Option Compare Database

Function OracleConnect() As Boolean

Dim ws As Workspace
Dim db As Database
Dim LConnect As String
Dim myQuery As String
Dim myRS As Recordset


On Error GoTo Err_Execute

LConnect = "ODBC;DSN=Oracle;UID=user;PWD=password;"

'Point to the current workspace
Set ws = DBEngine.Workspaces(0)

'Connect to Oracle
Set db = ws.OpenDatabase("", False, True, LConnect)

myQuery = "Select * from INTERFACE.Products"

Set rst = db.OpenRecordset(myQuery)


rst.Close
db.Close


Exit Function

Err_Execute:
MsgBox MsgBox("Error Number: " & Err.Number & " Message: " & Err.Description)

End Function

最佳答案

你能不能试试这样的:

Set rst = db.OpenRecordset(mQuery, dbOpenSnapshot, dbSQLPassThrough)

这只会将查询逐字发送到 Oracle 数据库。

Access documentationOpenRecordset你会发现这个笔记:

If you open a Recordset in a Microsoft Access workspace and you don't specify a type, OpenRecordset creates a table-type Recordset.



这可能是您遇到错误的根源。

作为一项规则,我建议您在参数中始终明确 OpenRecordset :默认行为并不总是一致的,它可能会产生奇怪的错误。

我不确定您的设计,但让您更轻松的一种方法可能是简单地在 Access 中创建链接表。
在这种情况下,您将能够针对您的 INTERFACE.Products 编写查询。 Oracle 表好像是本地的 Products table 。
它还可以使您不必自己管理连接。

关于oracle - MS-Access ODBC 连接到 Oracle for SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com