AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankverbindung klappt nicht die zweite
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankverbindung klappt nicht die zweite

Ein Thema von Delbor · begonnen am 11. Nov 2021 · letzter Beitrag vom 11. Nov 2021
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Datenbankverbindung klappt nicht die zweite

  Alt 11. Nov 2021, 14:42
Datenbank: SQLite • Version: 3.xxx • Zugriff über: FireDac
Hi zusammen

Auch hier wieder mal erst die Fehlermeldung:

---------------------------
Im Projekt HomeOfficerFEProject.exe ist eine Exception der Klasse ESQLiteNativeException mit der Meldung '[FireDAC][Phys][SQLite] ERROR: unable to open database file' aufgetreten.
---------------------------

Über einen Kontextmenü-Punkt mit Inputbox zur Eingabe eines DB-Namens lande ich schliesslich hier:

Delphi-Quellcode:
function TDMLSQLiteOfficerFE.CreateAndConnectDatabase(DatabaseFolder: String) : Boolean;
begin
  try
    TDirectory.CreateDirectory(DatabaseFolder);
    FDSQLiteConnection.Connected := false;
    FDSQLiteConnection.Params.Clear;
    FDSQLiteConnection.Params.Add('DriverID=SQLite');
    FDSQLiteConnection.Params.Add('Database='+DatabaseFolder); // Add('Database=' + dlgOpen.FileName);
    FDSQLiteConnection.Params.Values['FailIfMissing'] := 'False';
    FDSQLiteConnection.Connected := true; //<==

    FDSQLiteConnection.ExecSQL('PRAGMA foreign_keys=on');
    Result := FDSQLiteConnection.Connected;
    CreateDatabase(DatabaseFolder);
  except
    on E: EDatabaseError do
    begin
      ShowMessage('Fehler beim Aufbau der Datenbankverbindung: ' + #13#13 + E.Message);
      Result := False;
    end;
  end;
end;
Hier wird als erste ein Ordner für die DB am Pfad Databasefolder angelegt. Dann wird Databasefolder, das den kompletten DB-Pfad enthält, an den Parameter 'Database' zugewiesen - soviel, wie ich verstanden habe, läuft das genau so ab, wie es sein sollte. Nur führt der Versuch, die Verbindung herzustellen, zu obiger Fehlermeldung. Was mache ich falsch?

Ach ja: CreateDatabase ruft nacheinander die Prozeduren zum Festlegen der SQL-Strings / Erstellen von Tabellen und Indizes auf.


Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datenbankverbindung klappt nicht die zweite

  Alt 11. Nov 2021, 14:52
Was genau steht denn in DatabaseFolder? Mich verwirrt etwas, dass derselbe Wert für den Datenbanknamen und den Verzeichnisnamen verwendet wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datenbankverbindung klappt nicht die zweite

  Alt 11. Nov 2021, 14:57
Hi DeddyH

Databasefolder erhält seinen Wert über den Filesearcher und eine Inputbox für den eigentlichen Namen. Der aktuelle Wert ist: M:\HomeOfficerDB.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Datenbankverbindung klappt nicht die zweite

  Alt 11. Nov 2021, 15:00
Da fehlt aber doch der Dateiname.
Delphi-Quellcode:
    FDSQLiteConnection.Params.Values['DriverID'] := 'SQLite';
    FDSQLiteConnection.Params.Values['Database'] := TPath.Combine(DatabaseFolder, 'Delbor.sdb'); // oder welcher Name auch immer
    FDSQLiteConnection.Params.Values['FailIfMissing'] := 'False';
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Datenbankverbindung klappt nicht die zweite

  Alt 11. Nov 2021, 15:09
Hi DeddyH

Vielen Dank! Wusste ich doch: wer lesen kann, ist klar im Vorteil! Das steht so in allen Beispiele, die ich in den letzten Tagen durchforstet habe...

Sagst du mir bescheid, wenn du ein gutes Versteck für mich findest?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:34 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