2011-08-05 17 views
1

我有一個SQL查詢,我已經通過SQL程序成功地執行了。我結束了我合併到一個有標題(無列名)的列的數據。RecordSet方法生成轉換錯誤,SQL結果沒有BOF和EOF

我試圖通過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. 

這個錯誤也當我嘗試了工作,while循環和recordstObject.MoveNext的組合出現左右。我已經試過檢查,如果有一個BOF或通過

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

的EOF而事實證明,「無開始或結束」 MSGBOX露面。

應該指出,我目前正在處理一個結果,但最終需要補償多個結果。

我的SQL語句是

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

其中MSGBOX recordstObject.Fields("")上說1|Scottish Terr|DogBreed

建議,就如何解決這一問題?

謝謝。

+0

嗨,你能找到解決辦法嗎?如果是,請張貼或標記當前的答案。謝謝! –

回答

1

我想到了一個空的記錄與BOF和EOF顯示在一起 - 這意味着你的測試是南轅北轍(即你說如果空接MSGBOX「空」

某些連接/鎖定/編組方法不支持RecordCount屬性,因爲記錄並不是全部傳輸到客戶端。但是,遍歷記錄集應該已經成功了。

不知道爲什麼你會得到類型轉換錯誤,除非驅動程序根據它看到的第一行猜測Integer數據類型,然後在隨後的行中被絆倒。這對於SQL Server來說會很奇怪 - 它在Excel文本ODBC驅動程序上更爲典型。
你可以發佈你的SQL嗎?

+0

我的sql語句是「SELECT id +'|' + name +'| DogBreed'FROM breeds WHERE c_id = 9「MsgBox recordstObject.Fields(」「)says」1 | Scottish Terr | DogBreed「 –