找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3849|回復(fù): 0
收起左側(cè)

ADODB 中 RecordSet 的打開方式區(qū)別

[復(fù)制鏈接]
ID:90014 發(fā)表于 2015-9-13 16:26 | 顯示全部樓層 |閱讀模式
前兩天在調(diào)試數(shù)據(jù)庫(kù)抓取數(shù)據(jù)的程序時(shí),使用了 ADODB 的Connection 對(duì)象和 Recordset 對(duì)象。希望將通過 SELECT 語(yǔ)句查詢的結(jié)果全部存儲(chǔ)在一個(gè) Recordset中,然后再對(duì)這個(gè) Recordset 中的數(shù)據(jù)進(jìn)行處理。但是在實(shí)際操作的過程中,希望通過 Move 命令將當(dāng)前數(shù)據(jù)指針移動(dòng)到記錄的最前端時(shí),系統(tǒng)提示出錯(cuò),無(wú)法將指針反向移動(dòng)。后來在網(wǎng)上查詢?cè)颍瓉硎莿?chuàng)建這個(gè) Recordset 時(shí),所使用的命令參數(shù)不同,創(chuàng)建了一個(gè)單項(xiàng)的記錄集。 舉例如下: rs 為記錄集對(duì)象,如果要?jiǎng)?chuàng)建雙向移動(dòng)記錄集,則必須使用如下的語(yǔ)句:
        rs.Open strSQL, cn, 1, 1 '執(zhí)行strSQL所含的SQL命令,結(jié)果保存在rs記錄集對(duì)象中
這樣,使用 rs.move  nnn 的指令時(shí),nnn是正值,則向前移動(dòng),否則反向移動(dòng)指針。

另外,在 ADO2.8中,可以支持比較復(fù)雜的 SQL 查詢語(yǔ)句如下:

strCn = "Provider=sqloledb;Server=localdb;Database=Meters;Uid=sa;;"    '定義數(shù)據(jù)庫(kù)鏈接字符串
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"

在這個(gè)語(yǔ)句中,用到了 SQL 的函數(shù) RTRIM 以及 RIGHT, 用到了別名 NewTestID, 有查詢條件和最后結(jié)果的排序輸出等,證明了可以通過 ADO 來實(shí)現(xiàn)對(duì) SQL 數(shù)據(jù)庫(kù)的完全控制。



相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表