我使用Zeoslib组件与我的SQLite数据库文件进行交互。我在一个文件夹中有几个SQLite数据库文件。所以,我希望能够使用Zeoslib组件打开其中的任何一个。但是,它不允许我。它成功地打开了第一个数据库,但之后我打开的任何数据库文件,我都会收到访问违规错误。就我的一生而言,我根本不明白为什么。
以下是我打开数据库文件的方式。
procedure TMainFrm.Open1Click(Sender: TObject);
var currdb:string;
begin
OpenDlg.InitialDir := BaseDir;
if OpenDlg.Execute = true then
begin
currdb := Extractfilename(OpenDlg.FileName);
DataModule1.ZConnection1.Disconnect;
DataModule1.ZConnection1.Protocol := 'SQLite-3';
DataModule1.ZConnection1.Database :=baseDir + currdb;
DataModule1.Query1.SQL.Clear;
DataModule1.Query1.SQL.Add('SELECT * FROM MyTable'); // <<<<--- ZConnection1 is Query1 database connection.
DataModule1.ZConnection1.Connect; // <<<<<-------Here is where I get ACCESS VIOLATION all the time.
UpdateGrid; // <<<<<<<----- Here is where the Query is executed and the DBGrid is updated.
end;
end;
我不知道为什么。这是不是意味着我不能使用Zeoslib组件从另一个数据库切换数据库?
问题在于TZConnection.Protocol
值的大写。将Protocol
值从SQLite-3
更改为sqlite-3
。