修改Delphi使之適應SQL Server2000 (轉)

gugu99發表於2008-06-29
修改Delphi使之適應SQL Server2000 (轉)[@more@]

把 SERVER 7.0 換為 2000 後,正常的都出錯了。仔細一查,原來是 SQL Server 2000
將過程的返回引數改了名(RETURN_VALUE 改成了 @RETURN_VALUE)。讓我們來對 ADO 作少許改動,使之相容
7.0 和 2000。

1、使用 File -> Open Project 開啟 VCLADODB.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.pas
5、將編譯後的 ADODB.dcu 複製到 Lib 目錄下覆蓋原有的 ADODB.dcu。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1006248/,如需轉載,請註明出處,否則將追究法律責任。

相關文章