【问题标题】:Run sql Stored procedure within vb6 Error opendatasource在 vb6 错误 opendatasource 中运行 sql 存储过程
【发布时间】:2013-03-18 12:19:27
【问题描述】:

我正在尝试使用下面的代码使用 VB6 ADO 连接将访问表中的所有记录插入到 sql server 表中

Set cn = New ADODB.connection
cn.CursorLocation = adUseClient
cn.ConnectionString = "Provider=SQLOLEDB.1;Password=password;Persist Security
Info=True;User ID=sa;Initial Catalog=Kargozini;Data Source=DC"
cn.Open
cn.execute("INSERT INTO TLeavePersonel SELECT * FROM OPENDATASOURCE
('Microsoft.Jet.OLEDB.4.0','Data Source=D:\Kargozini\arazz\Arazdb.Mdb; 
Jet OLEDB:Database Password=MYPASSWORD;' )... TLeavePersonel Rowset_1")

但是当我运行代码时出现以下错误:

运行时错误“-2147217900 (80040e14)”: [OLE/DB 提供程序返回消息:Microsoft Jet 数据库引擎无法打开文件“D:\Kargozini\arazz\Arazdb.Mdb”。它已被其他用户独占打开,或者您需要权限才能查看其数据。]

【问题讨论】:

  • SQL Server 可以访问路径D:\Kargozini\arazz\Arazdb.Mdb 吗?即使您可能在一台服务器上运行代码,因为您是针对 SQL 服务器执行它,它也会在其自身上寻找“D”驱动器。您可能必须使用 UNC 共享才能访问它。

标签: sql-server ms-access vb6


【解决方案1】:

您似乎正在使用 MS Access,因此您可以在查询中直接引用 SQL Server 连接:

INSERT INTO 
[ODBC;DRIVER=SQL Server;SERVER=server;Trusted_Connection=Yes;DATABASE=Kargozini;].TLeavePersonel 
SELECT * FROM TLeavePersonel;

您将在此处找到合适的 ODBC 连接字符串:http://www.connectionstrings.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    相关资源
    最近更新 更多