gpt4 book ai didi

sql-server - 最近 Delphi TADOStoredProc/D6 和 RAD Studio XE2 上的故障

转载 作者:行者123 更新时间:2023-12-03 14:40:35 25 4
gpt4 key购买 nike

感谢任何可以提供帮助的人...

背景:

我有一个应用程序编码,并且仍然受 Borland Delphi v6 支持。最近,我遇到了 TADOStoredProc 类无法执行存储过程的问题。这段代码之前已经稳定了好几年,从未被修改过。

我可以在请求上配置超时,这是受到尊重的,但是存储过程调用永远不会运行,即使超时很长。应用程序只是挂起,或者因超时异常而退出。 (我知道服务器不会负担过重,并且会响应同一客户端发出的其他 SQL SELECT 请求。)

我知道 D6 已经很旧了。我确实有一个单独的 Embarcadero RAD Studio XE2 环境,我在其中设法构建了相同的项目,但仍然存在相同的问题。 ...只是为了确定。

去哪里?

  • 请检查提供的代码,看看是否有更好的方法。 (最近更新后,也许 MSSQL 界面更加挑剔?)我当然欢迎建议。
  • 是否有一种可以插入应用程序的替代方法,该方法可靠且不需要 TADOSstoredProc?我已经完成了挖掘,但还没有找到任何好的例子。

代码示例

function TImport.OpenHeader(DriverID: Integer, …, ScanStart: DateTime, ...): integer;
var
suid: integer;
jid: integer;

con : TADOConnection;
sp : TADOStoredProc;
begin
suid := getScanUnitID();
jid := deriveJobID(ScanStart);

con := TADOConnection.Create(nil);
con.LoginPrompt := false;
con.ConnectionString := 'Provider=SQLOLEDB.1;Password=<testPwd>;Persist Security Info=True;User ID=<testUser>;Initial Catalog=<myDB>;Data Source=<myServer>';
con.CommandTimeout := 10;
con.KeepConnection := true;
con.Connected := true;

sp := TADOStoredProc.Create(nil);
sp.Connection := con;
sp.CommandTimeout := 10;
sp.ProcedureName := 'mon4_OpenHeader;1';
sp.Parameters.Refresh;

sp.Parameters.ParamByName('@ScanUnitID').Value := suid;
sp.Parameters.ParamByName('@JobID').Value := jid;
sp.Parameters.ParamByName('@DriverID').Value := DriverID;
//[…]

sp.Parameters.ParamByName('@Result').Direction := pdOutput; //returned from stored proc

sp.ExecProc;

Result := sp.Parameters.ParamByName('@Result').Value;
sp.Free;
con.Free;
end; // end OpenHeader(DriverID: Integer, …, ScanStart: DateTime, …): integer

感谢您提供的任何帮助。

最佳答案

尝试使用 SQL Server Native Client 10.0 OLE DB 提供程序

Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername;
Pwd=myPassword;

关于sql-server - 最近 Delphi TADOStoredProc/D6 和 RAD Studio XE2 上的故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com