Lazarus Free Pascal/Delphi-运行错误211

Lazarus Free Pascal/Delphi-运行错误211,delphi,postgresql,runtime-error,freepascal,lazarus,Delphi,Postgresql,Runtime Error,Freepascal,Lazarus,我正在尝试将我的Windows XP程序(Lazarus)连接到我的Ubuntu postgres服务器 当Lazarus程序运行时,它似乎编译得很好,但我得到以下错误: 项目。。。引发了异常类“RunError(211)” 然后它终止执行(我看不到任何输出),并打开一个文件customform.inc。在该文件中,它显示了一个过程过程TCustomForm.DoCreate突出显示一行:如果已分配(FOnCreate),则FOnCreate(Self) 我相信这是系统的文件之一 我从来没有看到

我正在尝试将我的Windows XP程序(Lazarus)连接到我的Ubuntu postgres服务器

当Lazarus程序运行时,它似乎编译得很好,但我得到以下错误:

项目。。。引发了异常类“RunError(211)”

然后它终止执行(我看不到任何输出),并打开一个文件customform.inc。在该文件中,它显示了一个过程
过程TCustomForm.DoCreate突出显示一行:
如果已分配(FOnCreate),则FOnCreate(Self)

我相信这是系统的文件之一

我从来没有看到任何输出。 这会是什么?谢谢

更多信息:

我已将错误缩小到这一行:

  dbQuery_Menu.SQL.Text:='Select * From "tblMenus"';

  dbQuery_Menu.Open;
执行OPEN语句时会触发异常

顺便说一句,dbQuery_菜单被定义为TSQLQuery组件


无知!:(

尝试调用抽象方法时出现运行错误211。请查看有关FreePascal/Lazarus运行时错误的更多信息

由于您说所有操作都是由代码完成的,并且您没有可视化组件,因此问题可能在于您的代码试图使用未重写Open方法的祖先组件。您应该能够通过使用正确的后代组件来解决此问题

另一种可能性,尽管我强烈建议避免这种情况,但就是自己重写Open方法。应该避免这种情况,因为如果您使用的是祖先组件,那么您可能必须重写更抽象的方法


HTH

尝试调用抽象方法时出现运行错误211。请查看有关FreePascal/Lazarus运行时错误的更多信息

由于您说所有操作都是由代码完成的,并且您没有可视化组件,因此问题可能在于您的代码试图使用未重写Open方法的祖先组件。您应该能够通过使用正确的后代组件来解决此问题

另一种可能性,尽管我强烈建议避免这种情况,但就是自己重写Open方法。应该避免这种情况,因为如果您使用的是祖先组件,那么您可能必须重写更抽象的方法


这意味着主机变量是BOOL类型,数据库中的数据既不是“t”也不是“f”。(SQLSTATE 42804)这意味着主机变量是BOOL类型,数据库中的数据既不是“t”也不是“f”。(SQLSTATE 42804)在将近5天之后,我找到了答案。非常感谢所有为他们的想法做出贡献的人,特别是RRUZRBAGuillem Vicens。还有其他相关帖子都与让第一个Lazarus程序与PostgreSQL一起工作有关

总结

  • 我在这里犯的最大错误是使用了
    TSQLConnection
    组件。不要这样做。而是使用
    TPQConnection

  • 一切都是通过代码完成的。我们不使用顶部选项卡中的任何可拖动组件

  • 至少在使用PG DBs时不要依赖Lazarus文档(wiki)。它已经过时了。有些示例可能会产生误导

  • 确保字段有一些默认值。例如,如果布尔字段没有设置true或false(t/f),这可能会导致错误


  • 就这样!我希望很多博士后+拉扎勒斯新手会觉得这很有用。

    在将近5天之后,我找到了答案。非常感谢所有为他们的想法做出贡献的人,特别是RRUZRBA吉尔姆·维森斯。还有其他相关的帖子都与第一个拉扎尔有关与PostgreSQL合作的美国计划

    总结

  • 我在这里犯的最大错误是使用了
    TSQLConnection
    组件。不要这样做。而是使用
    TPQConnection

  • 一切都是通过代码完成的。我们不使用顶部选项卡中的任何可拖动组件

  • 至少在使用PG DBs时不要依赖Lazarus文档(wiki)。它已经过时了。有些示例可能会产生误导

  • 确保字段有一些默认值。例如,如果布尔字段没有设置true或false(t/f),这可能会导致错误


  • 就是这样!我希望很多postgres+Lazarus新手会发现这很有用。

    postgres库是否正确连接?您是否使用Zeos或其他组件?@opc0de我能够成功连接。但是当我开始使用TSQLTransation组件时,出现了很多错误。顺便说一句,整个过程都是通过代码完成的。没有可视组件。我个人nally没有任何TSQLTransaction的经验,但它对我使用zeos组件很好。如果找不到,我建议你试试solution@opc0de谢谢你的提示,但我甚至无法正确安装zeos。我认为该软件包丢失了一些东西或已损坏。无论如何,我想让它工作,因为这是我希望移植到t的东西从这里开始--211(ECPG_CONVERT_BOOL)这意味着主机变量是BOOL类型,数据库中的数据既不是't'也不是'f'。(SQLSTATE 42804)postgres库是否正确连接?您是否使用Zeos或其他组件?@opc0de我能够成功连接。但是在我开始使用TSQLTransation组件时出现了很多错误。顺便说一句,整个过程都是通过代码完成的。没有可视组件。我个人没有TSQLTransation的任何经验,但它对我usi很好ng zeos组件。如果找不到,我建议您试试solution@opc0de谢谢你的提示,但我甚至无法正确安装zeos。我认为该软件包丢失了一些东西或已损坏。无论如何,我希望能够正常工作,因为这是我希望移植到linux的东西