![]() |
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; |
AW: prüfen ob eine db existiert
|
AW: prüfen ob eine db existiert
Wie sieht es
![]() |
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
|
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. |
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. |
AW: prüfen ob eine db existiert
das ist Richtig!
leider habe ich nicht soviel Zeit! wie sieht die Musterlösung aus?
Delphi-Quellcode:
ist das schon besser aus?
if (myscript.SQL.Text:= SELECT * FROM sys.databases WHERE name = 'test') then
|
AW: prüfen ob eine db existiert
Zitat:
[Klicken Sie hier, um...] :thumb: |
AW: prüfen ob eine db existiert
Zitat:
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. |
AW: prüfen ob eine db existiert
habe es jetzt mit einer Query versucht!
Delphi-Quellcode:
Danke für die Hilfe :o
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; |
AW: prüfen ob eine db existiert
EOF = End Of File
|
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! |
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 |
AW: prüfen ob eine db existiert
Zitat:
oder 'select top/first 1 1 from table' (ist die Tabelle nicht leer?) vorziehen. So ein 'Count' kann ganz schön lange dauern. |
AW: prüfen ob eine db existiert
:warn: Der OP hat doch keine Zeit für solche Diskussionen... :freak:
|
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; |
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. |
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 08:13 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-2025 by Thomas Breitkreuz