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;