我在许多TQuery
通过 BDE 连接到 Interbase 时收到此错误。确切的消息是:
一般 SQL 错误。动态 SQL 错误,SQL 错误代码 = -804,SQLDA 缺失或版本不正确,或变量数量/类型不正确。
只要我尝试TQuery
在设计时打开/编辑该消息,或者在运行时完成发布时,就会出现该消息。对于运行时的 Post 操作,我发现如果我在 Post 之前准备表,则 Post 做得很好。
我已经阅读了Craig Stunz 的关于相同错误的博客。我的参数都是整数。数据库很小,Interbase 2009,我没有看到显示错误消息的查询的特定模式(可以选择、删除、更新等)。从 Delphi 中运行查询就可以了。
这些表具有数字数据类型 (15,2)。
这些表已从 Interbase 版本 5 - 方言 1 备份/恢复到 Interbase 2009。
实际 ODS 为 13.1(Interbase 9)。
没有 UDF。
知道有什么问题吗?
[更新]
未显示错误/显示错误的查询示例:
无错误:
select MASTER_ID, GL_ACCT_DR, GL_ACCT_CR,
VENDOR_ID, VENDOR_CODE,
ORDER_NO, ORDER_DATE, INVOICE_NO, INVOICE_DATE,
DESCRIP, BUYER, SHIP_VIA, FOB, IS_FREIGHT_PREPAID,
IS_TAXABLE, TERMS_ID, TERMS_CODE,
DISC_DAYS_OR_DATE, DISCOUNT_PCT, NET_DAYS_OR_DATE,
BILL_TO_LOC_ID, SHIP_TO_LOC_ID,
BILL_TO_LOC_CODE, SHIP_TO_LOC_CODE,
DISCOUNT_DATE, DUE_DATE
from P_JRNTRN where
ENTITY_DB_ID = :PRIMARY_DB_ID and
SRC_MODULE = 'PJ'
order by INVOICE_NO
参数为整数。
错误:
select * from P_JRNTRN where
BATCH_ID = :BATCH_ID
order by MASTER_ID
参数为整数。
[更新] ...我无法解决这个问题,所以我搬到了 IBDAC 来代替 BDE。我没有更多的错误。谢谢大家。