You are not logged in.
Pages: 1
Well, I just can't call the function sqlite3.db_config(sql.DB, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,1);
under Delphi Win64. There is an access violation directly in the sqlite library.
Both in the static version and in the DLL. I can't provide a more detailed analysis because I can't debug sqlite.
It works with Delphi Win32. But the extension is only Win64.
(I have tested the extension with DiSQLite3, there they works)
Please define "code crash".
---------------------------
GExperts Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0000000000D1EE5F. Read of address FFFFFFFFFFFFFFFF'.
---------------------------
[&Filter ...] [Ignore &All this Session] [&Break] [Additional &Info] [&Continue]
---------------------------
ThreadId=24592
ProcessId=1
ThreadName="Main"
ExceptionMessage="Access violation at address 0000000000D1EE5F. Read of address FFFFFFFFFFFFFFFF"
ExceptionName="EAccessViolation"
ExceptionDisplayName="$C0000005"
ExceptionAddress=00D1EE5F
FileName=<not available>
LineNumber=<not available>
---------------------------
i have downloaded
https://github.com/asg017/sqlite-vec/re … _64.tar.gz
created a win64 vcl application
and
uses
...
,mormot.core.os,mormot.db.sql,mormot.db.raw.sqlite3,mormot.core.unicode
,mormot.core.base,mormot.db.raw.sqlite3.static,mormot.db.sql.sqlite3
,mormot.db.core,mormot.core.datetime
procedure TForm1.FormCreate(Sender: TObject);
var
sql : TSQLDatabase;
lLoad : Integer;
lMsg : PUtf8Char;
begin
sql := TSQLDatabase.Create(ExtractFilePath(Application.ExeName)+'sample.sql','');
try
sqlite3.db_config(sql.DB, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1);
lLoad:= sql.SQLite3Library.load_extension(sql.DB, PUtf8Char(ExtractFilePath(Application.ExeName)+'vec0.dll'), 0, lMsg);
if not (lLoad= SQLITE_OK) then
raise Exception.Create('Error Message');
sql.Free;
except
on E:Exception do
begin
end;
end;
end;
code crash at sqlite3.db_config(....
Somehow none of it works. Or it doesn't work with my extension. Does anyone know more about this? I want to download the following extension.
https://github.com/asg017/sqlite-vec/re … .2-alpha.6
Can anyone help?
Any help is welcome to follow PDF/3-A support.
What help is needed? What is still to be done?
with wxsqlite it works but i need a DB Explorer
Thanks
i need encryption in Delphi Win64, so i need the external DLL.
For the 64bit variant I have to take the SQLite DLL from https://github.com/utelle/wxsqlite3/releases, right?
Is there a database viewer that supports this encryption?
Is it included in main repository?
thank you @ab, for your explanations. I would have to check that again. But I think we exceed the 16 MB limit also not. And the files are rarely changed.
What are the difficults to support GridFS? Aside from that, who programmed it.
Any news on this project? Win64 Support,...Does it make sense to update to the latest version of SpiderMonkey?
Thanks
according to my first post,
This code should work, but it does not.
Can someone take a look on this, please.
thanks
var
sql : TSQLDatabase;
blob : TSQLBlobStream;
memory : TMemoryStream;
begin
sql := TSQLDatabase.Create('d:\temp\test.db');
try
sql.Execute('CREATE TABLE IF NOT EXISTS "files" ("UID" INTEGER PRIMARY KEY AUTOINCREMENT, "Filename" TEXT NOT NULL, "File" BLOB);');
memory := TMemoryStream.Create;
memory.LoadFromFile('d:\temp\v\DOCUMENT_2013-20280_2013_05_14_11_14_31.XML');
memory.Position := 0;
sql.Execute('INSERT INTO files (Filename) VALUES ("'+StringToUTF8('DOCUMENT_2013-20280_2013_05_14_11_14_31.XML')+'")');
blob := sql.Blob('main','files','File',0,true); <------------ cannot open value of type null extended_errcode=1
blob.CopyFrom(memory,memory.Size);
memory.Free;
blob.Free;
finally
sql.Destroy;
end;
Your path is not correct.
Try 'd:\temp\test.db' instead of 'test.db'.
dosn't work.
https://www.sqlite.org/c3ref/blob_open.html say the dbname is called 'main', but it also does not work
But why do you use sql.Blob() ?
Use a regular SELECT statement with ColumnBlob() on the TSQLDatabase.
It would be much faster and safer.
sorry, i can't find some example or documentation to read / write binary blobs
Can't obtain Blob direct from SQLite
Which DBName is correct?
var
sql : TSQLDatabase;
blob : TSQLBlobStream;
memory : TMemoryStream;
begin
sql := TSQLDatabase.Create('d:\temp\test.db');
try
sql.Execute('CREATE TABLE IF NOT EXISTS "files" ("UID" INTEGER PRIMARY KEY AUTOINCREMENT, "Filename" TEXT NOT NULL, "File" BLOB);');
memory := TMemoryStream.Create;
memory.LoadFromFile('d:\temp\v\DOCUMENT_2013-20280_2013_05_14_11_14_31.XML');
memory.Position := 0;
sql.Execute('INSERT INTO files (Filename) VALUES ("'+UTF8Encode('DOCUMENT_2013-20280_2013_05_14_11_14_31.XML')+'")');
blob := sql.Blob('test.db','files','File',0,true); <------------ no such table test.db.files extended_errcode=1
blob.CopyFrom(memory,memory.Size);
memory.Free;
blob.Free;
finally
sql.Destroy;
end;
+1 for GridFS please
Any contribution is welcome!
:-)
i do my best.
I have to look also for PDF/A-3 support.
Could it be difficult to integrate the full XMP support?
Pages: 1