2012-04-19 35 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 

將 '工作',沒有任何問題。

相關問題