Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > VBScript Ошибка при работе с ADO.Recordset


Автор: Severyanin 4.6.2010, 05:15
Всем привет. Делаю простенький конвертер из базы Access в формат YAML. 
Код

Dim cn
    Set cn = CreateObject("ADODB.Connection")
    'cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=params.mdb;Initial Catalog=;UID=admin;PWD=''" 
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=params.mdb"
    If Err.Number <> 0 Then
        WScript.Echo "1-" & Err.Number & ":" & Err.Description
        Err.Clear
        'Continue
    End If
    'On Error GoTo CnErrorHandler
    Dim rs 
    Set rs = CreateObject("ADODB.Recordset")
    If Err.Number <> 0 Then
        WScript.Echo "2-" & Err.Number & ":" & Err.Description
        Err.Clear
        'Continue
    End If
    rs.CursorType = adOpenForwardOnly
    rs.ActiveConnection = cn
    rs.Source = "SELECT FIO FROM params"
    rs.Open

При открытии рекордсета получаю ошибку "Отсутствует значение для одного или нескольких требуемых параметров".
Перерыл возможную документацию, но там все указывают на отсутствие определения курсора или запроса, которые у меня есть.

Автор: Akina 4.6.2010, 08:21
Создал такую базу с такой таблицей и данными. Скопировал твой код в скрипт. Изменил имя базы (добавил диск и путь). Добавил в конец вывод пары строк и закрытие соединения:

Код

Dim cn
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\db1.mdb"
If Err.Number <> 0 Then
        WScript.Echo "1-" & Err.Number & ":" & Err.Description
        Err.Clear
End If
Dim rs 
Set rs = CreateObject("ADODB.Recordset")
If Err.Number <> 0 Then
        WScript.Echo "2-" & Err.Number & ":" & Err.Description
        Err.Clear
End If
rs.CursorType = adOpenForwardOnly
rs.ActiveConnection = cn
rs.Source = "SELECT FIO FROM params"
rs.Open

dim val
val=rs.fields("FIO") & chr(10)
rs.movenext
val=val & rs.fields("FIO")
WScript.Echo val

rs.close
cn.close

Скрипт отработал корректно и без проблем.
Вывод: проблемы в коде НЕТ.

Автор: Severyanin 8.6.2010, 17:18
Спасибо, проблема решилась подстановкой правильного названия поля в запрос)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)