Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   prüfen ob Datenbank vorhanden ist (https://www.delphipraxis.net/184386-pruefen-ob-datenbank-vorhanden-ist.html)

bernhard_LA 22. Mär 2015 10:05

Datenbank: MSSQL • Version: 12 • Zugriff über: ADO

prüfen ob Datenbank vorhanden ist
 
ich möchte prüfen ob eine DB auf meinem Server vorhanden ist, nur stimmt mein SQL Statement leider nicht. Wo liegt denn hier der Fehler ???


Delphi-Quellcode:
  try
    aConnection := TADOConnection.Create(nil);
    aConnection.Connected := False;
    aConnection.LoginPrompt := False;
   
    ....
 
    aLocalQuery := TADOQuery.Create(nil);
    aLocalQuery.Connection := aConnection;

    sqlStr := 'select * from master.dbo.sysdatabases where name=' + aDatabaseName ;

    aLocalQuery.sql.add (sqlStr);
    aLocalQuery.Open;

    if aLocalQuery.RecordCount=0 then
            result := false
            else
            result := true;

  finally
    aConnection.Free;
    aLocalQuery.Free;
  end;

Fehlermeldung : Syntaxfehler bei 'aDatabasename'

Bernhard Geyer 22. Mär 2015 10:10

AW: prüfen ob Datenbank vorhanden ist
 
Du brauchst im SQL Hochkommatas bei Strings (wie auch bei Pascal auch).

Und ich hoffe das du kein Edit-Feld zur eingabe anbietest. Dann hättest du ein Problem wenn jemand die Datenbank "'; DROP Database xyz; --" suchen würde ...

jobo 22. Mär 2015 10:11

AW: prüfen ob Datenbank vorhanden ist
 
Du musst noch Hochkommata um den Variablennamen setzen.
Entweder zu Fuß (konkatenierung) oder mittels der Funktion
QuotedStr
oder am besten den Abfrageparameter explizit als Parameter handhaben.
Parameter haben Typen und die wissen dann selbst, wie sie gehandhabt werden müssen.

Dazu gibt es bereits jeweils viele Threads hier. Einfach mal Suchfunktion benutzen.


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