【问题标题】:Lazarus Pascal - DB Connection - clarificationLazarus Pascal - 数据库连接 - 澄清
【发布时间】:2012-10-30 04:58:50
【问题描述】:

以下代码来自文档here

Program ConnectDB

var AConnection : TSQLConnection;

Procedure CreateConnection;
begin
  AConnection := TIBConnection.Create(nil);
  AConnection.Hostname := 'localhost';
  AConnection.DatabaseName := '/opt/firebird/examples/employee.fdb';
  AConnection.UserName := 'sysdba';
  AConnection.Password := 'masterkey';
end;

begin
  CreateConnection;
  AConnection.Open;
  if Aconnection.Connected then
    writeln('Succesful connect!')
  else
    writeln('This is not possible, because if the connection failed, ' +
            'an exception should be raised, so this code would not ' +
            'be executed');
  AConnection.Close;
  AConnection.Free;
end.

代码的主体对我来说很有意义,但我不知道TSQLConnection 的来源。我也不能使用 CTRL + Space 来自动完成它,这意味着我的程序没有引用它。顺便说一下,我正在尝试连接到 Postgres。

有人可以说明TSQLConnection 是什么吗?谢谢!

【问题讨论】:

    标签: freepascal lazarus dbconnection


    【解决方案1】:

    TSQLConnection 对象在sqldb 单元中定义,是特定连接组件的基类,例如TIBConnection(interbase、firebird)、TConnectionName(mysql)和TPQConnection(postgres) .

    【讨论】:

    • 如果我包含了 pqconnection 单元,它不应该自动完成吗?我不明白。
    • 不,要获得自动完成功能,您必须包含定义类型的单元,在这种情况下为 sqldb 单元。
    • @itsols PostGreSQL 单元与 Firebird 数据库服务器有什么关系???为什么你会有包含 pqconnection 的想法。 PS。您可以搜索 Unified Interbase 组件集 - 也许有人也将它们移植到 FPC。
    • @Arioch'我只引用该代码块作为具有 TSQLConnection 的参考。我没有使用火鸟。相反,它是postgres。我知道其他更改,但我无法将 TSQLConnection 与其余代码相关联,因为我在键入时没有自动完成,也不知道我应该从哪个单元使用它。
    • @RRUZ 感谢您为我指明正确的方向。我实际上做了一些事情,它似乎工作得很好。我没有将 db 连接定义为 TSQLConnection,而是使用了 PQConnection 并且它起作用了。谢谢!
    猜你喜欢
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    相关资源
    最近更新 更多