Pascal 如何将sql查询结果保存到lazarus中的变量?

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

我正在做一个项目,我想保存一个从sql查询中读取的整数。 我该怎么做? 以下是查询:

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论坛上搜索/提问。