Einzelnen Beitrag anzeigen

myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#7

AW: SQLite ganz einfach (via Unit).. wie ? [D6]

  Alt 31. Mär 2016, 14:35
Also zuallererst solltest du mit FileExists() überprüfen, ob die Datei existiert.
Klar, verstehe ich, und habe ich schon gemacht.

Wichtiger ist: wie überprüfe ich ob sqldatenbank schon initializiert wurde ?


Ich habe mir einen eigenen Wrapper für die DLL geschrieben und noch ein paar DLL-Aufrufe hinzugefügt, die in der von dir verwendeten Unit nicht existieren.
Hast du das irgendwo zur verfügung gestellt ?

Entweder weil es diese noch nicht gab als der Wrapper geschrieben wurde oder weil der Autor des Wrappers diese für nicht sinnvoll angesehen hat. In meinen Augen sind das aber sehr wichtige Funktionen wenn man tiefer in die Datenbank eingreifen will und nicht nur Daten einer Tabelle auslesen will.
Na gut, das auslesen würde mir so weit ausreichen. Zweck: ich werde alte routinen für .INI dateien ersetzen - die sind von andere schlecht programmiert und auch langsam.

Edit:

wenn ich in meiner Code "per Zufall" die Initialization auslasse, also
Delphi-Quellcode:
procedure databaseinit(filename: string);
begin
// sqdatabase := TSQLiteDatabase.Create(filename);
end;
dann bekomme ich auch mit test eine Access Violation:
Delphi-Quellcode:
function dbquery(q:string):string;
var
  T: TSQLiteTable;
begin
  try
    if Assigned(sqdatabase) then // <<<< geht leider nicht..
    begin
      t:=sqdatabase.GetTable(q);
      // records ?
      if t.Count>0 then
      begin
           Result:=t.FieldAsString(0);
      end;
    end
    else
        Result:='!!';
   finally
     t.free;
   end;
end;
das ist was ich meine mit Fehlersuche / test.

Geändert von myicq (31. Mär 2016 um 15:47 Uhr)
  Mit Zitat antworten Zitat