|
前两天在调试数据库抓取数据的程序时,使用了 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 数据库的完全控制。
|
|