时间: 2021-07-31 作者:daque
把 sql server 7.0 换为 sql server 2000 后,实行平常的步调都堕落了。提防一查,从来是 sql server 2000将保存进程的归来参数改了名(return_value 改成了 @return_value)。让咱们来对 adodb 作一些变换,使之兼容7.0 和 2000。1、运用 file -> open project 翻开 source\vcl\adodb.pas。2、定位到 tadoconnection.willexecute,在 begin 后介入如次代码[code] // 用来兼容 sql server 7.0 和 sql server 2000 if (pcommand.parameters.count > 0) and ((pcommand.parameters[0].name = 'return_value') or (pcommand.parameters[0].name = '@return_value')) then begin if pconnection.properties['dbms version'].value < '08.00.0000' then pcommand.parameters[0].name := 'return_value' else pcommand.parameters[0].name := '@return_value' end;[/code]3、定位到 tadocommand.findparam 在 result = ni 前介入如次代码[code] // 用来兼容 sql server 7.0 和 sql server 2000 if (count > 0) and ((value = 'return_value') or (value = '@return_value')) then begin result := items[0]; if (result.name = '@return_value') or (result.name = 'return_value') then exit; end;[/code]4、编写翻译 adodb.pas5、将编写翻译后的 adodb.dcu 复制到 lib 目次下掩盖原有的 adodb.dcu。