|
前兩天在調試數據庫抓取數據的程序時,使用了 ADODB 的Connection 對象和 Recordset 對象。希望將通過 SELECT 語句查詢的結果全部存儲在一個 Recordset中,然后再對這個 Recordset 中的數據進行處理。但是在實際操作的過程中,希望通過 Move 命令將當前數據指針移動到記錄的最前端時,系統提示出錯,無法將指針反向移動。后來在網上查詢原因,原來是創建這個 Recordset 時,所使用的命令參數不同,創建了一個單項的記錄集。 舉例如下: rs 為記錄集對象,如果要創建雙向移動記錄集,則必須使用如下的語句:
rs.Open strSQL, cn, 1, 1 '執行strSQL所含的SQL命令,結果保存在rs記錄集對象中
這樣,使用 rs.move nnn 的指令時,nnn是正值,則向前移動,否則反向移動指針。
另外,在 ADO2.8中,可以支持比較復雜的 SQL 查詢語句如下:
strCn = "Provider=sqloledb;Server=localdb;Database=Meters;Uid=sa;;" '定義數據庫鏈接字符串
strSQL = "select rtrim(TestID) as NewTestID, NumberA, Ib, PF, Iabc, Sampling, Error1,Error2,Error3 FROM Deviation "
strSQL = strSQL & "WHERE (TestID > '" & sStC & "') and (TestID < '" & sEdC & "') and (sampling =3) and RIGHT(rtrim(TestID),1)=" & CStr(nSite) '定義SQL查詢命令字符串
strSQL = strSQL & " ORDER BY TestID, NumberA"
在這個語句中,用到了 SQL 的函數 RTRIM 以及 RIGHT, 用到了別名 NewTestID, 有查詢條件和最后結果的排序輸出等,證明了可以通過 ADO 來實現對 SQL 數據庫的完全控制。
|
|