Browse Source

fcl-db: tests: Add test for Master-detail (see rev.25055)

git-svn-id: trunk@25065 -
lacak 12 years ago
parent
commit
35f74e86ad
1 changed files with 24 additions and 0 deletions
  1. 24 0
      packages/fcl-db/tests/testsqldb.pas

+ 24 - 0
packages/fcl-db/tests/testsqldb.pas

@@ -27,6 +27,7 @@ type
   TTestTSQLQuery = class(TSQLDBTestCase)
   private
   published
+    procedure TestMasterDetail;
     procedure TestUpdateServerIndexDefs;
   end;
 
@@ -52,6 +53,29 @@ uses sqldbtoolsunit, toolsunit, sqldb;
 
 { TTestTSQLQuery }
 
+procedure TTestTSQLQuery.TestMasterDetail;
+var MasterQuery, DetailQuery: TSQLQuery;
+    MasterSource: TDataSource;
+begin
+  with TSQLDBConnector(DBConnector) do
+  try
+    MasterQuery := GetNDataset(10) as TSQLQuery;
+    MasterSource := TDatasource.Create(nil);
+    MasterSource.DataSet := MasterQuery;
+    DetailQuery := Query;
+    DetailQuery.SQL.Text := 'select NAME from FPDEV where ID=:ID';
+    DetailQuery.DataSource := MasterSource;
+
+    MasterQuery.Open;
+    DetailQuery.Open;
+    CheckEquals('TestName1', DetailQuery.Fields[0].AsString);
+    MasterQuery.MoveBy(3);
+    CheckEquals('TestName4', DetailQuery.Fields[0].AsString);
+  finally
+    MasterSource.Free;
+  end;
+end;
+
 procedure TTestTSQLQuery.TestUpdateServerIndexDefs;
 var Q: TSQLQuery;
     name1, name2, name3: string;