Pascal 如何将sql查询结果保存到lazarus中的变量?
我正在做一个项目,我想保存一个从sql查询中读取的整数。 我该怎么做? 以下是查询:Pascal 如何将sql查询结果保存到lazarus中的变量?,pascal,lazarus,Pascal,Lazarus,我正在做一个项目,我想保存一个从sql查询中读取的整数。 我该怎么做? 以下是查询: SELECT IDEmp FROM Employee Where IDLocal = 1 它需要依赖于数据库的连接组件。由于您没有指定所使用的数据库,我将在下面的(未测试的)示例中假设sqlite {$mode delphi} uses Classes, SysUtils, strutils,sqlite3conn, sqldb, db; function CreateQuery(pConnectio
SELECT IDEmp
FROM Employee
Where IDLocal = 1
它需要依赖于数据库的连接组件。由于您没有指定所使用的数据库,我将在下面的(未测试的)示例中假设sqlite
{$mode delphi}
uses Classes, SysUtils, strutils,sqlite3conn, sqldb, db;
function CreateQuery(pConnection: Tsqlconnection; pTransaction: TSQLTransaction): TSQLQuery;
begin
result := TSQLQuery.Create(nil);
result.Database := pConnection;
result.Transaction := pTransaction
end;
const rootfs = '/mnt/ext1/';
var
connect: TSQLite3Connection;
SQLQuery1: TSQLQuery;
transact: TSQLTransaction;
Query : TSQLQuery;
fn : string;
begin
connect:=TSQLite3Connection.create(nil);
connect.LoginPrompt := False;
connect.DatabaseName := 'D:\testing\touch2db\books.db';
connect.KeepConnection := False;
transact:=TSQLTransaction.create(nil);
transact.action:=caNone;
transact.database:=connect;
connect.Transaction:=transact;
Query := CreateQuery(Connect, Transact);
Query.SQL.Text:='SELECT IDEmp FROM Employee Where IDLocal =:myidlocal');
Query.Params.ParamByName('myidlocal').AsInteger:=1;
Connect.Open;
Query.Open;
if Query.EOF then
writeln('No Result!')
else
begin
MyGoodInteger:=Query.FieldByName['IDEmp'].AsInteger;
writeln('result = ',MyGoodInteger);
end;
Connect.Close;
Query.Free;
Transact.Free;
Connect.Free;
end.
您将在lazarus/examples/database文件夹中找到更多示例项目。我正在使用Microsoft sql server。在LazarusIDE中,我使用SQLdb和数据访问。我正在尝试保存结果,但我做不好。您需要freetds驱动程序才能访问sql server。但我没有实际经验,在lazarus论坛上搜索/提问。