[fpc-pascal] SQL show tables
David B Copeland
david.copeland at jsidata.ca
Mon Jan 12 19:30:15 CET 2009
Ah yes, you are correct. However the the Open returns the following
error:
"Query: Cannot open a non-select statement"
I also have found some more help in the Lazarus wiki which just happens
to have an example of how to do a "show tables". So then, I tried the
following:
FormMyDB.Query.SQL.Clear;
FormMyDB.Query.SQL.Text := 'show tables';
try
FormMyDB.Query.Open;
if FormMyDB.Query.EOF then
ShowMessage ('There are no tables!');
while not FormMyDB.Query.EOF do begin
CBTable.Items.Add
(FormMyDB.Datasource.DataSet.FieldByName('Tables_in_TRACKER').AsString);
FormMyDB.Datasource.DataSet.Next
end;
FormMyDB.Query.Close;
except on e: exception do begin
ShowMessage ('Error load table names: ' + e.message);
exit;
end
end
Again however the Open returned the same error. Could the problem be
that this is supported through a MySQLConnection, but not an ODBC
connection?
Dave.
On Mon, 2009-01-12 at 09:41 -0800, ABorka wrote:
> I think "execsql" never returns any records, you supposed to use "open"
> for queries returning results.
> Execsql is for insert, delete, update, etc.
>
>
>
> David B Copeland wrote:
> > Hi,
> >
> > I am trying to pre-fill a TComboBox with the all the tables in a
> > database, without sucess. I am running Suse 10.3, a recent (within a
> > week) Lazarus 0.9.27 from svn, FPC 2.2.2, 64-bit. The program uses a
> > ODBCConnection to a MySQL database.
> >
> > The code I tried is:
> >
> > FormMyDB.Query.SQL.Clear;
> > FormMyDB.Query.SQL.Add ('show tables;');
> > try
> > FormMyDB.Query.ExecSQL;
> > if FormMyDB.Datasource.DataSet.EOF then
> > ShowMessage ('There are no tables!'); // This gets displayed
> > while not FormMyDB.Datasource.DataSet.EOF do begin
> > CBTable.Items.Add
> > (FormMyDB.Datasource.DataSet.FieldByName('Tables_in_TRACKER').AsString);
> > FormMyDB.Datasource.DataSet.Next
> > end;
> > FormMyDB.Query.Close;
> > except on e: exception do begin
> > ShowMessage ('Error load table names: ' + e.message);
> > exit;
> > end
> > end
> >
> > The ExecSQL appears to complete normally, but the result dataset is
> > empty. What am I doing wrong? In other parts of the program I
> > successfully both query and update various tables in the database. Any
> > pointers in the right direction will be greatly appreciated.
> >
> > Dave Copeland.
> >
> >
> > _______________________________________________
> > fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> > http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> >
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
More information about the fpc-pascal
mailing list