Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   prüfen ob eine db existiert (https://www.delphipraxis.net/185228-pruefen-ob-eine-db-existiert.html)

strom 23. Mai 2015 16:21

Datenbank: MariaDB • Version: ? • Zugriff über: MyConnect

prüfen ob eine db existiert
 
Hallo,

möchte über die Komponente "myscript" prüfen,
ob eine Database 'hardware' existiert.

wie könnte so ein Beispiel aussehen?

Delphi-Quellcode:
begin
  if myscript.SQL.Text:= Format ('SELECT Database',['hardware'])???? then // dies soll nur eine Richtung darstellen
   begin

   end;
end;

vagtler 23. Mai 2015 16:48

AW: prüfen ob eine db existiert
 
http://lmgtfy.com/?q=mariadb+check+database+exists

Aviator 23. Mai 2015 16:49

AW: prüfen ob eine db existiert
 
Wie sieht es hiermit aus? Gefunden nach 30 Sekunden googeln. Solltest du auch mal versuchen. :stupid:

strom 23. Mai 2015 17:08

AW: prüfen ob eine db existiert
 
hey,

habe auch schon einiges gelesen, aber leider ohne Erfolg.:?

Delphi-Quellcode:
if myscript.SQL.Text:= Format ('CREATE DATABASE IF NOT EXISTS', ['hardware']) = true then

vagtler 23. Mai 2015 17:11

AW: prüfen ob eine db existiert
 
Vielleicht solltest Du Dich erst einmal mit den Grundlagen der Programmierung mit Object Pascal beschäftigen?

Der Compiler gibt Dir bei Deinem merkwürdigen Konstrukt übrigens durchaus konstruktive Hinweise.

Sir Rufo 23. Mai 2015 17:12

AW: prüfen ob eine db existiert
 
Da fehlen Grundlagen und Basics bei dir.

Jeder mit ein wenig Grundlagenkenntnis sieht auf einen Blick, dass dein Code nicht funktionieren kann.

strom 23. Mai 2015 17:45

AW: prüfen ob eine db existiert
 
das ist Richtig!

leider habe ich nicht soviel Zeit!
wie sieht die Musterlösung aus?


Delphi-Quellcode:
if (myscript.SQL.Text:= SELECT * FROM sys.databases WHERE name = 'test') then
ist das schon besser aus?

redox 23. Mai 2015 17:47

AW: prüfen ob eine db existiert
 
Zitat:

Zitat von strom (Beitrag 1302797)
das ist Richtig!

leider habe ich nicht soviel Zeit!
wie sieht die Musterlösung aus?

Wie wäre es denn mit PowerPoint statt Delphi?

[Klicken Sie hier, um...]

:thumb:

Bernhard Geyer 23. Mai 2015 17:58

AW: prüfen ob eine db existiert
 
Zitat:

Zitat von strom (Beitrag 1302797)
leider habe ich nicht soviel Zeit!

Falsche Antwort. Wenn du willst das dir Helfen solltest du dir Zeit nehmen.
Ansonsten: Für ein entsprechenden Stundenlohn nehme ich mir ganz Persönlich Zeit deine Problem zu lösen


Und es gibt keine 100%ig Musterlösung. Solange du keine Rechte auf der Datenbank hast um abzufragen ob es die Datenbank gibt kannst du nicht feststellen ob es die Datenbank gibt.

strom 23. Mai 2015 19:46

AW: prüfen ob eine db existiert
 
habe es jetzt mit einer Query versucht!

Delphi-Quellcode:
begin
 QueryDB.Sql.Text:='select * from test'; // Tabelle "test" ist nicht vorhanden!
 QueryDB.Open;
if not (QueryDB.Eof) then // was bedeutet Eof ??
 begin
 ShowMessage('Test'); // Wieso wird diese Meldung nicht angezeigt?
 QueryDB.Close;
 end else begin
   ShowMessage('112');
   QueryDB.Close;
end;
Danke für die Hilfe :o

Popov 23. Mai 2015 20:02

AW: prüfen ob eine db existiert
 
EOF = End Of File

mkinzler 24. Mai 2015 10:01

AW: prüfen ob eine db existiert
 
Willst Du nun wissen, ob eine Datenbank schon existiert, eine Tabelle schon existiert oder ob es schon Datensätze in einer Tabelle gibt.
Das letztere macht nämlich Deine Abfrage ( obwohl hier eine Abfrage mit Count besser wäre.

Eine Blick in die Doku würde Dir sagen, dass EOF End Of File bedeutet!

himitsu 24. Mai 2015 10:52

AW: prüfen ob eine db existiert
 
Wirft Open nicht eine Exception, wenn die Tabelle nicht existiert, also wenn das STATEMENT einen Fehler verursacht?

Und damit prüft man nicht, ob die Tabelle existiert, sondern ob in der Tabelle Datensätze vorhanden sind.

DBConnection.Connect ... Exception -> Datenbank existiert nicht
Query.Open ... Exception -> Tabelle existiert nicht
Query.EoF=True -> Tabelle ist leer
Query.EoF=False -> in der Tabelle ist was drin

Dejan Vu 24. Mai 2015 15:09

AW: prüfen ob eine db existiert
 
Zitat:

Zitat von mkinzler (Beitrag 1302869)
...obwohl hier eine Abfrage mit Count besser wäre.

Ich würde eine Query à la 'select 1 from Table where 1=0' (existiert die Tabelle?)
oder 'select top/first 1 1 from table' (ist die Tabelle nicht leer?) vorziehen. So ein 'Count' kann ganz schön lange dauern.

vagtler 24. Mai 2015 15:15

AW: prüfen ob eine db existiert
 
:warn: Der OP hat doch keine Zeit für solche Diskussionen... :freak:

strom 24. Mai 2015 17:41

AW: prüfen ob eine db existiert
 
doch, hier bin ich wieder!

wenn ich jetzt prüfe, ob die database "els_test" verfügbar ist!

brauch ich einen wert zurück (true/false)!

wie mache ich das am besten?

Delphi-Quellcode:
Database.SQL.Text := 'use els_test';
 Database.Execute;

jobo 24. Mai 2015 18:48

AW: prüfen ob eine db existiert
 
Nochmal zu den Grundlagen:
Bevor Du irgendwelche Abfragen / Befehle senden kannst, musst Du angemeldet sein. (Dich anmelden können)
Das beinhaltet:
- Treiber installiert
- Verbindungsparameter richtig eingestellt
- User / pw korrekt
- Firewall settings korrekt
und es gibt sicher noch mehr

Wenn Du Dich anmelden kannst, ist die DB vorhanden!
Wenn Du Dich nicht anmelden kannst, ist die DB evtl. auch vorhanden. Nur Du hast auf der Strecke was falsch gemacht.
Tu Dir einen Gefallen und setz Dich mit den Grundlagen auseinander.

Dejan Vu 24. Mai 2015 20:12

AW: prüfen ob eine db existiert
 
Normalerweise meldet man sich aber an einem Server, oder RDBMS, an. Ob die Datenbank vorhanden ist, ist an der Stelle doch erstmal egal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz