Wrote an application that connects to the database and should display the data tables (so far one). On the DataModule, IBQuery (select * from clients), IBDataSource, IBDataSet, IBDataSetProvider linked them to an IBDatabase, which is in a different form. Opening a window with a DBGrid (linked by a DataSource with an IBDataSource) results in an error
IBQuery1: Cannot perform this operation on an open dataset.
Debugging has shown that this error occurs on the line.
mydm.IBQuery1.ExecSQL;
in the next block of code
procedure TfmTableData.FormActivate(Sender: TObject); var openTable : TTableSpec; CountColumns : integer; I: Integer; begin openTable:=TTableSpec(DBSchema.Tables.FindComponent(fmListOfTables.Listbox1.Items.Strings[fmListOfTables.Listbox1.ItemIndex])); CountColumns:=openTable.Fields.ComponentCount; //DBGrid1.Columns.:=CountColumns; {for I := 0 to CountColumns-1 do begin DBGrid1.Columns.Add; DBGrid1.Columns[i].Title.Caption:=openTable.Fields.Components[i].Name; end; } MainWindow.IBDatabase1.Connected:=true; //IBTable1.TableName:='CLIENTS'; mydm.IBDataSet1.Close; mydm.IBQuery1.Open; mydm.IBQuery1.ExecSQL; //IBDataSet1.Open; //IBTable1. //fmTableData.DataSource1.DataSet:=IBDataset1; //fmTableData.DBGrid1.DataSource:=fmTableData.IBDataset1; end;