我使用Object Inspector选择Sqlite作为SQLConnection1组件的驱动程序。
每当我使用以下代码运行我的VCL表单应用程序时:
procedure TForm6.FormCreate(Sender: TObject);
begin
SQLConnection1.Params.Add('Database=C:\test.s3db');
SQLConnection1.Connected := true;
end;
我收到调试器异常通知。
第一次机会异常,价格为74FFB727美元。带有消息'外部异常C06D007E'的异常类EExternalException。处理Project5.exe(3508)
和
$ 00000000的第一次机会异常。异常类$ C0000005,消息'访问冲突在0x00000000:读取地址0x00000000'。处理Project5.exe(3508)
根据Deploying dbExpress Database Applications
和Tutorial: Connecting to a SQLite Database from a VCL Application
在Windows上,为了连接到SQLite数据库,请将库sqlite3.dll放在系统路径中,并验证应用程序是否可以找到sqlite3.dll。
在Windows 32位上:C:\ Windows \ System32
在Windows 64位上:C:\ Windows \ SysWOW64
О当然,文件sqlite3.dll
可能位于可执行文件所在的文件夹中。
安装SQLite ODBC Driver,并使用adoconnection
进行连接。像"DRIVER=SQLite3 ODBC Driver;Database=c:\test\test.db;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"
这样的连接字符串
在RAD Studio 10.2中,使用SQLConnection1.LoginPrompt := false
解决了这个问题。
ConStr := 'Database=' + GetCurrentDir + '\nhl.s3db';
SQLConnection1.LoginPrompt := false;
SQLConnection1.Params.Add(ConStr);
SQLConnection1.Connected := true;