|
前兩天在調(diào)試數(shù)據(jù)庫抓取數(shù)據(jù)的程序時,使用了 ADODB 的Connection 對象和 Recordset 對象。希望將通過 SELECT 語句查詢的結(jié)果全部存儲在一個 Recordset中,然后再對這個 Recordset 中的數(shù)據(jù)進行處理。但是在實際操作的過程中,希望通過 Move 命令將當(dāng)前數(shù)據(jù)指針移動到記錄的最前端時,系統(tǒng)提示出錯,無法將指針反向移動。后來在網(wǎng)上查詢原因,原來是創(chuàng)建這個 Recordset 時,所使用的命令參數(shù)不同,創(chuàng)建了一個單項的記錄集。 舉例如下: rs 為記錄集對象,如果要創(chuàng)建雙向移動記錄集,則必須使用如下的語句:
rs.Open strSQL, cn, 1, 1 '執(zhí)行strSQL所含的SQL命令,結(jié)果保存在rs記錄集對象中
這樣,使用 rs.move nnn 的指令時,nnn是正值,則向前移動,否則反向移動指針。
另外,在 ADO2.8中,可以支持比較復(fù)雜的 SQL 查詢語句如下:
strCn = "Provider=sqloledb;Server=localdb;Database=Meters;Uid=sa;;" '定義數(shù)據(jù)庫鏈接字符串
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 的函數(shù) RTRIM 以及 RIGHT, 用到了別名 NewTestID, 有查詢條件和最后結(jié)果的排序輸出等,證明了可以通過 ADO 來實現(xiàn)對 SQL 數(shù)據(jù)庫的完全控制。
|
|