使用ADODB

时间:2015-12-17 15:59:42

标签: sql-server vbscript

我很难使用ADODB从MSSQL 2012服务器填充记录集 下面是无效的代码,以及我收到的错误。

我使用了完全相同的设置来查询来自MSSQL 2008r2服务器的数据而没有问题。

我知道我的SELECT语句准确无误。如果我将select语句粘贴到sql server management studio中的新查询窗口中,它将返回数据。

Dim mConnection

Set mConnection = CreateObject("ADODB.Connection")

mConnection.Open "Provider=SQLOLEDB.1;Data Source=rwdwstage","SA","PASSWORDREDACTED"

Set Tech_RS = CreateObject("ADODB.Recordset")

SQLstr = "SELECT QDSTCD, QDAREA, QDBANK FROM [RWDATA].[dbo].[BRDETAIL] where QDSDT = '20151215' and QDSTCD = 'WI'"

Tech_RS.open SQLstr, mConnection

Do while not Tech_RS.EOF
    wscript.echo Tech_RS.Fields("QDSTCD") & " - " & Tech_RS.Fields("QDAREA") & " - " & Tech_RS.Fields("QDBANK")
    Tech_RS.MoveNext
Loop

错误返回

cscript ..\HIST_Transfer\test2.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

..\HIST_Transfer\test2.vbs(11, 1) Microsoft OLE DB Provider for SQL Server: Incorrect syntax near the keyword 'FROM'.

非常感谢任何可以提供的帮助!

1 个答案:

答案 0 :(得分:-1)

您可以将[DataContract] public abstract class EntityBase<TSubclass> : INotifyPropertyChanged where TSubclass : class { private List<string> _hydratedProperties; protected EntityBase() { Init(); } private void Init() { _hydratedProperties = new List<string>() } [OnDeserializing] private void OnDeserializing(StreamingContext context) { Init(); } // ... rest of code here } 添加到连接字符串:

Initial Catalog

并将查询更改为:

mConnection.Open "Provider=SQLOLEDB.1;Data Source=rwdwstage;Initial Catalog=RWDATA","SA","PASSWORDREDACTED"

<小时/> 我猜它之前有用,因为用于连接的登录的默认数据库是SQLstr = "SELECT QDSTCD, QDAREA, QDBANK FROM [dbo].[BRDETAIL] where QDSDT = '20151215' and QDSTCD = 'WI'" ,而更新版本则指向另一个数据库(您可以尝试更改该登录的默认数据库并检查它是否有效,请注意,更改它可能会破坏依赖于默认DB的其他应用程序