2012-04-19 73 views
0

我试图通过做一个请求来从csv文件检索一些信息,但我一直有这个错误: 没有给出一个或多个必需参数的值,代码80040E10来源: Microsoft Jet数据库引擎VBScript错误与JET数据库引擎请求

它涉及到我的剧本的下面一行:

RECORDSET.Open "SELECT * FROM " & strFile & " WHERE ComputerName = '" & OldComputerName & "'", CONNECTION, 3, 3 

但如果我请求权之前做strFile和OldComputerName的wscript.echo,它们显示正确的价值观。

这里是请求脚本的整个部分:

dim CONNECTION : set CONNECTION = CreateObject("ADODB.CONNECTION") 
dim RECORDSET : set RECORDSET = CreateObject("ADODB.RECORDSET") 
CONNECTION.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\contoso.scom\DP_IT\Rollout\;Extended Properties=""text;HDR=YES;FMT=Delimited""" 
strFile = "[CONTOSO-OPR-ComputerList.csv]" 
wscript.echo strfile 
wscript.echo OldComputerNameenter 
RECORDSET.Open "SELECT * FROM " & strFile & " WHERE ComputerName = '" & OldComputerName & "'", CONNECTION, 3, 3 

我想告诉大家,在这之前的工作。我没有去碰它几个星期但现在看来,事情已经改变了,我不知道是什么:/

编辑:如果我做整个请求的wscript.echo它给了我这样的:

SELECT * FROM [CONTOSO-OPR-ComputerList.csv] WHERE ComputerName = 'ABC123'

+0

确实有一个叫'ComputerName'的字段吗? – 2012-04-19 15:09:23

+0

是的,有一个字段叫这样 – Wawa41 2012-04-23 11:19:40

+0

好几次检查后,我发现这个脚本在普通的XP安装中工作得很好,但在我的客户端的主服务器上无效。 在相同的条件下(网络,份额,权利......)他们可以做些什么来阻止它正常工作吗? – Wawa41 2012-04-23 12:03:28

回答

0

正如user69820的注释所指出的那样,导致简单SQL语句错误的最可能原因是错误的列名。假设“相同的条件(网络,份额,权利......)”(我承认这个命令的顺序很高),我认为下一个犯罪嫌疑人是区域设置确定字段分隔符的(不同的)区域设置。

鉴于德国设置(即 “;” 分隔符),与文件 “” 像

ComputerName,WhatEver 
"ABC123",1 
"DEF456",2 

将导致错误,而

ComputerName;WhatEver 
"ABC123";1 
"DEF456";2 

将 '工作',没有任何问题。

相关问题