代码之家  ›  专栏  ›  技术社区  ›  Harriv

Firebird和Delphi 2009的错误消息“SQLDA结构中的错误值”

  •  3
  • Harriv  · 技术社区  · 16 年前

    当我试图从Delphi2009 DBX应用程序中更新Firebird 2.1数据库中的blob字段时,我遇到错误消息“SQLDA结构中的值不正确”。

    但是,当我尝试使用以下SQL执行tsqlquery时,会收到错误消息:“update mytable set field1=:data where id=:id”

    相关的Delphi代码是:

    MyQuery.ParamByName('id').AsInteger := id;
    MyQuery.ParamByName('data').LoadFromFile(filename, ftBlob);
    MyQuery.ExecSQL();
    

    我该去哪儿找?这已经在早期的Delphi版本中得到了应用。

    5 回复  |  直到 14 年前
        1
  •  3
  •   John Thomas    16 年前

    再次检查你的司机-是的 火鸟 或者你只用 数据库 司机?.Firebird团队在2.1中更改了blobs的sqlda结构,因此不能再使用interbase驱动程序。

    您可以选择:

    1. (推荐,imho)升级到Delphi2010-除了DBX Firebird驱动程序之外,您还可以玩更多的东西(请参见 here 更多)
    2. 为Firebird购买第三方驱动程序,Firebird在Delphi2009工作
    3. “降级”你的火鸟(当然,把它当作最后的手段)
    4. 更改连接库。是的,这可能意味着代码重写。
        2
  •  3
  •   Mariuz    16 年前

    也许你需要为Firebird使用免费的dbx驱动程序

    http://sites.google.com/site/dbxfirebird/

        3
  •  3
  •   Erick Sasse    16 年前

    这是Delphi的interbase驱动程序用来显示的一种密码错误。

    当SQL语句中的参数数目和查询组件中定义的参数数目不同时,我就看到了这个问题。

        4
  •  1
  •   Jeroen Wiert Pluimers    16 年前

    首先要考虑的是确保客户端dll(gds32.dll或fb32.dll或fbclient.dll,名称取决于您使用的Firebird版本)与您使用的服务器版本完全匹配。

    ——杰罗恩

        5
  •  0
  •   Sam Watkins    14 年前

    fwiw,我在Perl程序中通过执行一个不带绑定变量的语句(如果需要)得到了这个错误。