GARANTIR DESCONTO

Fórum Saber qual é a tabela que está aberta - SQL #146197

16/03/2003

0

Olá pessoal !!!

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

Anormal

Responder

Posts

16/03/2003

Anonymous

procedure TForm1.Button1Click(Sender: TObject);
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


Responder

Gostei + 0

16/03/2003

Anormal

procedure TForm1.Button1Click(Sender: TObject); 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




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.


Responder

Gostei + 0

17/03/2003

Adilsond

Se você estiver utilizando o BDE, peguei a função do Maurício e modifique para:

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar