arkadaşlar formda bir sürü başlık var ama ben bir türlü beceremedim.
tablom var mı kontrolü yapmak istiyorum örnekleri inceledim ama kendime uygun şekilde çalıştıramadım
neyi yanlış yapıyorum acaba
saygılarımla
//aynı tablodan var mı?
SQLQuery1.SQL.Clear;
//SQLQuery1.SQL.Add('select VT_TURNUVA FROM INFORMATION_SCHEMA.TABLES where table_name = ''TRNV_28032021'' ');
SQLQuery1.SQL.Add('select VT_TURNUVA FROM INFORMATION_SCHEMA.TABLES where table_name =TRNV_28032021 ');
SQLQuery1.ExecSQL;
while not SQLQuery1.Eof do
begin
ShowMessage('Buldu');
exit;
end;
(28-03-2021, Saat: 16:03)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]arkadaşlar formda bir sürü başlık var ama ben bir türlü beceremedim.
tablom var mı kontrolü yapmak istiyorum örnekleri inceledim ama kendime uygun şekilde çalıştıramadım
neyi yanlış yapıyorum acaba
saygılarımla
//aynı tablodan var mı?
SQLQuery1.SQL.Clear;
//SQLQuery1.SQL.Add('select VT_TURNUVA FROM INFORMATION_SCHEMA.TABLES where table_name = ''TRNV_28032021'' ');
SQLQuery1.SQL.Add('select VT_TURNUVA FROM INFORMATION_SCHEMA.TABLES where table_name =TRNV_28032021 ');
SQLQuery1.ExecSQL;
while not SQLQuery1.Eof do
begin
ShowMessage('Buldu');
exit;
end;
Aşağıdaki sorguyu dener misiniz
Kod:
SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = 'tablo adi burada olacak'
(28-03-2021, Saat: 16:40)klavye Adlı Kullanıcıdan Alıntı: [ -> ]
Kod:
SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = 'tablo adi burada olacak'
olmadı hocam hep boş deger dönüyor.
saygılarımla
//aynı tablodan var mı?
//SQLQuery1.SQL.Add('SELECT * FROM information_schema.tables WHERE table_name = ''TRNV_28032021'' ');
SQLQuery1.SQL.Add('SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = TRNV_28032021');
SQLQuery1.Open;
while SQLQuery1.Eof do
begin
ShowMessage('Buldu');
exit;
end;
sonuc := SQLQuery1.Fields[0].AsInteger;
ShowMessage(IntToStr(sonuc));
if sonuc=1 then exit;
SQLQuery1.SQL.Add('SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = '+#39+'TRNV_28032021'+#39);
şeklinde dener misiniz ?
Merhabalar
Senin lik sorgu kullanırsan soyle bişey yap yeterlidir
execsql den sonra
if SQLQuery1.recordcount > 0 then
showmessage('bulundu');
(29-03-2021, Saat: 21:14)r3n4m3 Adlı Kullanıcıdan Alıntı: [ -> ]Merhabalar
Senin lik sorgu kullanırsan soyle bişey yap yeterlidir
execsql den sonra
if SQLQuery1.recordcount > 0 then
showmessage('bulundu');
malesef bildiğim yöntemleri denedim hata vermiyor ama kod iş görmüyor tabloyu kontrol ettim tablo var hatta başka tablo oluşturup onuda kontrol ettim sonuç aynı.
zamanınızı ayırdığınız için teşekkür ederim.
//aynı tablodan var mı?
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
//SQLQuery1.SQL.Add('SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = TRNV_28032021');
//SQLQuery1.SQL.Add('select 1 from rdb$relations where rdb$relation_name = ''TRNV_28032021'' ');
SQLQuery1.SQL.Add('SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = '+#39+'TRNV_28032021'+#39);
SQLQuery1.ExecSQL;
if SQLQuery1.recordcount > 0 then showmessage('bulundu');
Execsql yerine open deneyin
Yazdıgınız sorgu buyuk-kucuk harfe duyarli.Onun içinde tablo adini buna gore yazmalisiniz.
Bu sekilde forma bir adet query nesnesi ekledim.
sql.Text:='SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = '+QuotedStr('OGRENCI');
Seklinde sorguyu hazirlayip execquery dedigimde dogru sonucu verdi.
IBX ile baktım.
uses a IBX.IBSQL ekleyerek aşağıdaki gibi kullanabilirsiniz.
function TfrmMain.TableExists(Db: TIBDatabase; const TableName: string): Boolean;
begin
with TIBSQL.Create(nil) do
try
Database := db;
SQL.Text := 'SELECT 1 FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = :t';
Params[0].AsString := TableName;
ExecQuery;
Result := RecordCount > 0;
finally
Free;
end;
end;
procedure TfrmMain.btnTest(Sender: TObject);
begin
if TableExists(IBDatabase1, 'DENEME') then
ShowMessage('Ok');
end;