Методы RecordSet генерируют ошибку преобразования, а результаты SQL не имеют BOF и EOF - PullRequest
1 голос
/ 05 августа 2011

У меня есть SQL-запрос, который я успешно выполнил через программу SQL.Я закончил с данными, которые я объединил в один столбец с заголовком (без имени столбца).

Я попытался выполнить этот же оператор через программу Visual Basic и выполнить

MsgBox recordstObject.Fields("")

возвращает желаемые результаты.

Однако выполнение

MsgBox recordstObject.RecordCount

возвращает

[Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting 
the varchar value 'A01' to data type int.

Эта ошибка также появляется, когда я пытался обойти с помощью комбинации времениloop и recordstObject.MoveNext.Я пытался проверить, есть ли BOF или EOF через

If Not (recordstObject.BOF And recordstObject.EOF) Then
    MsgBox "No Begin or End"
Else
    MsgBox "There are records"
End If
recordstObject.MoveNext

И получается, что появился MsgBox "Нет начала или конца".

Следует отметить, что яВ настоящее время я работаю с результатом, равным одному, но в конечном итоге потребуется компенсация нескольких результатов.

Мой оператор sql

SELECT id + '|' + name + '|DogBreed' FROM breeds WHERE c_id = 9

Какой MsgBox recordstObject.Fields("") говорит 1|Scottish Terr|DogBreed

Предложения как это исправить?

Спасибо.

1 Ответ

1 голос
/ 06 августа 2011

Я думал, что пустой набор записей появляется вместе с BOF и EOF - это будет означать, что ваш тест неправильный (например, вы говорите Если Не Пусто, то Msgbox "Пусто" )

Некоторые методы подключения / блокировки / маршалинга не поддерживают свойство RecordCount, поскольку не все записи передаются клиенту за один раз. Однако перебор набора записей должен был сделать свое дело.

Не уверен, почему вы получаете ошибку преобразования типа, если драйвер не угадывает тип данных Integer на основе первой строки, которую он видит, а затем срабатывает в последующих строках. Это было бы довольно странно для SQL Server - это более типично для текстовых драйверов ODBC для Excel.
Вы можете опубликовать свой SQL?

...