Fórum Saber qual é a tabela que está aberta - SQL #146197
16/03/2003
0
Como saber que tabela que está aberta no sistema ?
EX.: Com uma Query1 é colocado na propriedade SQL um comando por exemplo: Select * from MinhaTabela
E aí eu gostaria de saber qual é a tabela que está aberta... que quando clica em um botão receba uma mensagem assim: ´A Tabela MinhaTabela está aberta´.
Espero que vocês entenderam a minha explicação...
Ficarei muito grato pela ajuda!
:P
Éder
Anormal
Curtir tópico
+ 0Posts
16/03/2003
Anonymous
var
x: integer;
begin
for x := 0 to componentcount -1 do
begin
if Components[x] is TTable then
if TTable(Components[x]).Active = true then
showmessage(´a tabela ´ + TTable(Components[x]).Name + ´ está aberta´);
end;
end;
//obs: se estiver usando query substitua o ttable para tquery
//mgsmauricio@bol.com.br
Gostei + 0
16/03/2003
Anormal
Não quero saber o nome da TQuery ou TTable e sim o nome da tabela que está no banci de dados... o nome da tabela que está selecionado.
Gostei + 0
17/03/2003
Adilsond
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, DbiProcs;
type
TForm1 = class(TForm)
Button1: TButton;
Table1: TTable;
Query1: TQuery;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure fDbiOpenTableList(hTmpDb: hDBIDb; TableList: TStrings);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure GetBaseDescs(Query: TQuery; List: TStrings);
var
hCur: hDBICur;
rslt: DBIResult;
Descs: STMTBaseDesc;
begin
hCur := nil;
try
// Look at DbiQGetBaseDescs in the BDE32.HLP for more information...
Check(DbiQGetBaseDescs(Query.STMTHandle, hCur));
repeat
rslt := DbiGetNextRecord(hCur, dbiNOLOCK, @Descs, nil);
if rslt = DBIERR_NONE then
// Look at STMTBaseDescs in the BDE32.HLP for more information...
List.Add(Format(´DB Name: ¬s Table Name: ¬s Field Name: ¬s´,
[Descs.szDatabase, Descs.szTableName, Descs.szFieldName]))
else
if rslt <> DBIERR_EOF then
Check(rslt);
until rslt <> DBIERR_NONE;
finally
if hCur <> nil then
check(DbiCloseCursor(hCur));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Word;
begin
for I := 0 to ComponentCount - 1 do
begin
if Components[I] is TQuery then
if TQuery(Components[I]).Active then
GetBaseDescs(TQuery(Components[I]),Memo1.Lines);
end;
end;
end.
Basta voce dar um modificada e pegar apenas o necessário. OK.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)