ADO获取数据的函数(一)

上一篇 / 下一篇  2011-10-11 14:06:12 / 个人分类:QTP学习

 

调用准备

Dim oDic,strSql

Set Dic=CreateObject("scripting.dictionary")

oDic.Add "1","column1"

oDic.Add "2","column2"

strSql="selectcolumn1,column2from tablewhere ......"

GetDBdata strSql,oDic

'*************************************************Function GetDBdata(sql,oDic)

'---------------------------------------------------------------'说明:  通过字典对象从DB中获取所需数据

'输入:  strSql 获取数据的sql语句

'          oDic  包含需要获取的字段名称的字典对象,key/value须在sql获取的字段列表中

'输出:  oDic  返回值为传入字段对应的取值或在没有记录时返回False

'Note后续需要加入传入SQL没有记录的异常处理,返回一个值在调用该函数时做判断

'---------------------------------------------------------------Dim res,cmd

Dim key

Set Res=Createobject("adodb.recordset")

Set Cmd=Createobject("adodb.command")

Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=NorthWind;Data Source=..."

Cmd.CommandType = 1

 

Cmd.CommandText = sql

Set res = Cmd.Execute()

 

Do Until res.eof=True

     For Each key In oDic

          If res.eof=true and res.bof=true Then

                oDic.Item(key)="False" '如果没记录,返回flase

          Else

                If res.eof=false Then

                     oDic.Item(key) = res(oDic.Item(key)).value

                End If

          End If

     Next

     If res.eof<>True Then

           res.movenext

     End If

Loop

 

Set res = Nothing

Set cmd.ActiveConnection = Nothing

Set Cmd= Nothing

 

Set GetDBdata=oDic

 

End Function

 

PS:adodb.recordset对象的EOFBOF属性

BOF指示当前记录的位置在Recordset对象的第一个记录之前。

EOF指示当前记录的位置在Recordset对象的最后一个记录之后。

返回值

BOFEOF属性返回Boolean值。

使用BOFEOF属性确定Recordset对象是否包含记录,或者从一个记录移动到另一个记录时是否超出Recordset对象的限制。

如果当前记录位于第一个记录之前,则BOF属性返回True(-1)。如果当前记录是第一个记录或位于第一个记录之后,则返回False (0)

如果当前记录位于最后一个记录之后,则EOF属性返回True。如果当前记录是最后一个记录或位于最后一个记录之前,则返回False

如果BOFEOF属性为True,则没有当前记录。

如果打开不包含记录的Recordset对象,则BOFEOF属性被设置为TrueRecordset对象的RecordCount属性设置为零。当打开至少包含一个记录的Recordset对象时,第一个记录是当前记录,并且BOFEOF属性均为False

如果删除Recordset对象中保留的最后一个记录,BOFEOF属性将保持False,直到重新定位当前记录为止。


TAG: ADO QTP qtp 函数

 

评分:0

我来说两句

Open Toolbar