I was just doing some Database testing using QTP. The following code will check whether both Database tables have equal values. This can be used multiple scenarios, like Two Database comparison, Two or more Table values comparisons, so on.
'Get Two different data from two different Tables and compare it;
'Two different Database and check their values.
' First Table Name - -> EmpTable
' Second Table Name ---> DeptTable
'Database ---> MS Access'
First Table ConnectionDim conn,rsSet conn=createobject("adodb.connection")
Set rs=createobject("adodb.recordset")conn.provider="microsoft.jet.oledb.4.0"conn.open"C:\db1.mdb"
'
creating an object for the recordsetsetrs =CreateObject("ADODB.recordset")
'
DB Query for selecting all the records available from EmpTablers.open "select * from EmpTable",conn
'
Adding Headings
datatable.GetSheet(1).addparameter "EMPLOYEE NO","
"datatable.GetSheet(1).addparameter " NAME","
"datatable.GetSheet(1).addparameter "DESIGNATION","
"datatable.GetSheet(1).addparameter " ADDRESS",""row=1
'
Loop for each recordsDo While not rs.EOF
datatable.SetCurrentRow(row)
datatable.Value("EMPLOYEE_NO",1) = rs.fields("EmpNo")
datatable.Value("NAME",1)=rs.fields("EmpName")
datatable.Value("DESIGNATION",1)=rs.fields("Designation")
datatable.Value("ADDRESS",1)=rs.fields("Address")
val1 = datatable.Value("NAME",1)row=row +1rs.movenext loop
'
Second Table Operationset rs1 =CreateObject("ADODB.recordset")
'DB Query for selecting all the records available from DeptTable
rs1.open "select * from DeptTable",conn
datatable.GetSheet(1).addparameter "EMPNO_Dept",""
datatable.GetSheet(1).addparameter "EMPNAME_Dept",""
datatable.GetSheet(1).addparameter "DEPTNAME_Dept",""
'
Assigning values from First rowrow=1
do While not rs1.EOF
datatable.SetCurrentRow(row)
datatable.Value("EMPNO_Dept",1)=rs1.fields("EmpNo")datatable.Value ("EMPNAME_Dept",1)=rs1.fields("EmpName")
datatable.Value("DEPTNAME_Dept",1)=rs1.fields("DeptName")
row=row +1rs1.movenextloop
'
Create one more Column called ResultColumnDataTable.GetSheet("Global").AddParameter"ResultColumn",""
cnt=DataTable.GetRowCount
For i=1 to cnt
DataTable.SetCurrentRow(i)
OldVal=DataTable.Value("NAME","Global")
NewVal = DataTable.Value("EMPNAME_Dept","Global")
'
Comparing two NAME fieldsIf OldVal = NewVal Then
DataTable.Value("ResultColumn","Global") = oldVal
Reporter.ReportEvent micPass, "P","The Names Fields are Equal "
else Reporter.ReportEvent micFail,"F","The Names Fields are Not Equal"
End If
Next