Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL: prüfen ob Datenbank/Tabelle existiert (https://www.delphipraxis.net/33144-mysql-pruefen-ob-datenbank-tabelle-existiert.html)

Pseudemys Nelsoni 2. Nov 2004 12:20


MySQL: prüfen ob Datenbank/Tabelle existiert
 
moin,

siehe, topic, wie mach ich eine solche abfrage?

franktron 2. Nov 2004 12:23

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
in einer SQL abfrage so

SQL-Code:
IF EXISTS tablename

Pseudemys Nelsoni 2. Nov 2004 12:25

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
moin franktron,

da ich das ganze in delphi mache müsste ich einen booleschen rückgabewert irgendwie bekommen, wie stell ich das an?

ich möchte nämlich prüfen ob eine datenbank existiert und dementsprechend in delphi reagieren

Igotcha 2. Nov 2004 12:32

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Ganz einfach mittels einer SQLQuery:

Delphi-Quellcode:
SHOW databases;
Bei Tabellen innerhalb einer Datenbank:

Delphi-Quellcode:
SHOW tables;
Und dann jeweils as Recordset auswerten.

Gruß Igotcha

franktron 2. Nov 2004 12:35

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Hängt von den Komoponenten ab.

Welche nutzt du ???

Pseudemys Nelsoni 2. Nov 2004 12:48

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Zeos

Igotcha 2. Nov 2004 12:49

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Zitat:

Zitat von franktron
Hängt von den Komoponenten ab.

Welche nutzt du ???

Hm, die von mir genannten SQL-Statements kann ich auch so direkt z.B. in MySQL-Front verwenden. Scheint also SQL-konform zu sein und dürfte nichts mit der verwendeten Komponente zu tun haben.

Gruß Igotcha

Pseudemys Nelsoni 5. Nov 2004 11:26

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
*hochschieb*

frage: @topic

Igotcha 5. Nov 2004 12:44

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Die Antwort habe ich Dir bereits gegeben: SHOW TABLES und oder SHOW DATABASES (das sind mysql-spezifische SQL-Anweisungen).

Dann mußt Du nur noch Dein Query.Recordset abfragen, ob die Tabelle bzw. die Datenbank in der Ergebnismenge enthalten ist.

Gruß Igotcha

Pseudemys Nelsoni 5. Nov 2004 14:22

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
so etwas wie ".RecordSet" habe ich nicht

Igotcha 5. Nov 2004 15:01

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Recordset ist die Ergebnismenge Deiner ZQuery-Komponente.

Delphi-Quellcode:
ZQuery.SQL.Text:='SHOW DATABASES'; // oder SHOW TABLES
ZQuery.Open;
For ix:=0 to ZQuery.RecordCount-1 do
begin
    if ZQuery.Fields[0].AsString='meine Datenbank' then
    ...
ZQuery.Next;
end;
So, die Feldnamen lauten (beides jeweils Ergebnisfeld[0]):

bei Datenbanken: 'Database'
bei Tabellen: 'tables_in_DATENBANKNAME'

Gruß Igotcha

Igotcha 5. Nov 2004 16:14

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
* Update *

Pseudemys Nelsoni 6. Nov 2004 09:42

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
danke, das geht 8)

Pseudemys Nelsoni 14. Jan 2005 18:11

Re: MySQL: prüfen ob Datenbank/Tabelle existiert
 
Zitat:

Zitat von Igotcha
Recordset ist die Ergebnismenge Deiner ZQuery-Komponente.

Delphi-Quellcode:
ZQuery.SQL.Text:='SHOW DATABASES'; // oder SHOW TABLES
ZQuery.Open;
For ix:=0 to ZQuery.RecordCount-1 do
begin
    if ZQuery.Fields[0].AsString='meine Datenbank' then
    ...
ZQuery.Next;
end;
So, die Feldnamen lauten (beides jeweils Ergebnisfeld[0]):

bei Datenbanken: 'Database'
bei Tabellen: 'tables_in_DATENBANKNAME'

Gruß Igotcha



wie funktioniert die for schleife eigentlich? das "ix" wird ja nie benutzt, also tut sie doch bei jedem durchgang das gleiche, oder?



schon gut, hab das .Next übersehen ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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