2012-04-19 2 views
0

Я пытаюсь получить некоторую информацию из файла csv, выполнив запрос к ней, но у меня все еще есть эта ошибка: Не задано значение для одного или нескольких требуемых параметров, код 80040E10 Источник: Microsoft Database Engine JETОшибка VBScript с запросом JET Database Engine

Это касается следующей строки моего сценария:

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

Но если я делаю wscript.echo из strFile и OldComputerName перед запросом, они показывают правильные значения.

Вот целая часть сценария с просьбой:

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 

Я хотел бы сказать, что это работало раньше. Я не трогать его в течение нескольких недель, но это, кажется, что-то изменилось, и я не знаю, что:/

EDIT: Если я делаю wscript.echo всего запроса дает мне это:

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

+0

Есть ли какое-то поле под названием 'ComputerName'? –

+0

Да, есть одно поле, подобное этому – Wawa41

+0

После нескольких проверок я обнаружил, что сценарий отлично работает на обычной установке XP, но не работает на хозяине моего клиента. В том же состоянии (сеть, домены, права ...) Есть ли что-то, что они могли бы сделать, чтобы предотвратить его правильную работу? – Wawa41

ответ

0

Как указано в комментарии пользователя69820, наиболее вероятной причиной этой ошибки для простых операторов SQL является плохое имя столбца. Предполагая, что «такое же условие (сеть, акции, права ...)» (высокий уровень, я признаю), следующим подозреваемым, на мой взгляд, являются (разные) региональные настройки, определяющие разделитель полей.

Учитывая немецкие настройки (т.е. ";" разделитель), файл с "" как

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

вызовут ошибку, в то время как

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

будет 'работать' без каких-либо проблем.

Смежные вопросы