Einzelnen Beitrag anzeigen

Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#7

AW: Programm nur im Kompatibilitätsmodus Win98 ausführbar

  Alt 2. Mär 2012, 09:45
Danke Sebastian für den Tipp, aber es lag wirklich am verwendeten Wrapper. Jetzt läuft alles wie gewünscht und ich bin happy!

Folgende Änderungen an genannten Dateien führten zum Erfolg:
Delphi-Quellcode:
// SQLite3.pas -----------------------

function SQLite3_Open(filename: PUTF8String; var db: TSqliteDB): integer; cdecl; external SQLiteDLL name 'sqlite3_open';

// SQLiteTable3.pas ------------------

constructor TSQLiteDatabase.Create(const FileName: string);
var
  Msg: PAnsiChar;
  iResult: integer;
// utf8FileName: UTF8string;
begin
  inherited Create;
  fParams := TList.Create;

  self.fInTrans := False;

  Msg := nil;
  try
// utf8FileName := UTF8String(FileName);
// iResult := SQLite3_Open(PAnsiChar(utf8FileName), Fdb);
   
    iResult := SQLite3_Open(PUTF8String(AnsiToUtf8(FileName)), Fdb);

    if iResult <> SQLITE_OK then
      if Assigned(Fdb) then
      begin
        Msg := Sqlite3_ErrMsg(Fdb);
        raise ESqliteException.CreateFmt('Failed to open database "%s" : %s',
          [FileName, Msg]);
      end
      else
        raise ESqliteException.CreateFmt('Failed to open database "%s" : unknown error',
          [FileName]);

  finally
    if Assigned(Msg) then
      SQLite3_Free(Msg);
  end;

end;
Ronald
  Mit Zitat antworten Zitat