我正在使用ODBC Express更新用Delphi 7编写的古代代码库,以便使用FireDAC将数据库连接到Delphi Seattle 10。目前,ODBC Express OEDataset组件指向存储过程并在设计时使用params定义,包括从" Return"中填充的@Result参数。 Sybase SP的功能。
如果我尝试对FireDAC的TFDStoredProc组件进行简单交换(最小调整)(在设计时定义参数),我会得到一个"无效的参数类型"包含@Result参数时出错(DataType = ftInteger,ParamType = ptResult)。没有@Result参数,存储过程执行正常,但是我无法访问"返回"值。
我已经使用ResourceOptions.UnifyParams,FetchItems.Items:= [fiMeta],ExecFunc而不是ExecProc,遗漏了@Result param等等。
我确定我错过了一些非常明显的东西,但我一直在我的桌子上敲我的头一天试图解决这个问题。有人有什么建议吗?
答案 0 :(得分:0)
看起来很奇怪,问题只是将ptResult参数添加为列表中的最后一个参数(这是使用ODBC Express完成的方式)。将@Result参数移动到第一个位置,只有第一个位置,可以解决问题。现在我将不得不搜索文档,看看我错过了那个小小的花絮......