![]() |
Datenbank: MSSQL • Version: 2008 • Zugriff über: BDE/ODBC
Prüfen ob Tabelle existiert
Hallo,
wie genau kann ich prüfen ob eine Tabelle existiert? Wenn ich dem Query1 eine Variable zuweise und diese anschließend prüfen will, passiert rein garnichts..
Delphi-Quellcode:
Der gibt mir kein fenster aus... Denn ich will, bevor ich die tabelle beschreibe prüfen ob sie vorhanden ist.. Denn folgendes klappt irgendwie nicht:
Query1.close;
Query1.sql.clear; test2 := Query1.sql.add('SELECT COUNT( * ) FROM sysobjects WHERE name = "'+tabelle+'"'); Query1.Open; showmessage(IntToSTr(test2));
Delphi-Quellcode:
Hat da jemand vielleicht eine Idee?
Query1.sql.add('IF EXISTS (SELECT * FROM dbo.SYSOBJECTS WHERE name="'+tabelle+'")');
Query1.sql.add('INSERT INTO '+tabelle+' (ID, test, test2, test3, test4)'); Query1.sql.add('VALUES (:id, :test, :test2, :test3, :test4)'); Denn wenn Fall eins klappen würde, könnte ich in Delphi ne einfache If-Abfrage machen und ggf die Tabelle befüllen oder ne MSG-Box ausgeben das sie erst erstellt werden muss.. PS: Bei der Variante eins gibt er mir immer eine Fehlermeldung: Query1: Das Feld 'id' wurde nicht gefunden |
AW: Prüfen ob Tabelle existiert
sowas vllt.:
Delphi-Quellcode:
function table_exists(tabelle:String):Boolean
//... Query1.sql.clear; Query1.sql.add('SELECT COUNT( * ) FROM sysobjects WHERE name = "'+tabelle+'"'); Query1.Open; Result:=Query1.Active and (Query1.RecordCount>0); |
AW: Prüfen ob Tabelle existiert
Was enthält wohl der RecordCount bei einer Aggregatabfrage wie COUNT? :zwinker:
|
AW: Prüfen ob Tabelle existiert
FUnktioniert leider auch nicht :(
Hat sonst noch jemand eine Idee? |
AW: Prüfen ob Tabelle existiert
Das macht das Programm aber ganz schon abhängig von dem verwendeten RDBMS.
Deine ADOConnection kennt alle Tabellen:
Delphi-Quellcode:
MyADOConnection.GetTableNames(myStringList);
If myStringList.IndexOf('MyTable')=-1 then ShowMessage('Tabelle nicht vorhanden'); |
AW: Prüfen ob Tabelle existiert
Wie wäre es mit
![]() [edit] Wo war der rote Kasten? [/edit] |
AW: Prüfen ob Tabelle existiert
Zitat:
Code:
war gemeint :oops:
Query1.sql.add('SELECT * FROM sysobjects WHERE name = "'+tabelle+'"');
|
AW: Prüfen ob Tabelle existiert
Zitat:
Code:
Mal im ernst: Wer SQL Statements unparametrisiert mit strings zusammenbaut frisst auch kleine Kinder :shock:
tabelle := tabelle + '; DROP TABLE ' + tabelle + ';'
|
AW: Prüfen ob Tabelle existiert
Er kennt GetTableNames nicht.. Gibt es das in Delphi 5 schon? Und ich benutze nur die Database,Datasource und Query Komponente sowie das DBGrid von Delphi 5..
|
AW: Prüfen ob Tabelle existiert
Hast Du mal auf meinen Link geklickt? Da steht, wo es alles GetTableNames gibt, in Deiner Auflistung ist da auch etwas dabei.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz