0
먼저이 코드가 99 %의 시간에 작동하지만이 오류를 수신하는 동안 클라이언트가 불만을 제기하는 것을 강조하고 싶습니다. 저장 프로 시저에 2 개의 매개 변수를 전달하기위한 벨로우즈 코드가 있습니다. frmSetLoggerTime은 datetimepicker (dtpToDate)가있는 양식입니다. 누구든지이 문제를 겪었습니까? 나는 SQL Server와 볼랜드 델파이 7을 사용하고 2008 년때때로 다음과 같은 오류가 나타납니다. 프로 시저 또는 함수에 제공된 매개 변수가 필요하지 않습니다.
다음procedure TFormDBManager.ActionSetLoggerTimeExecute(Sender: TObject);
var
frmSetLoggerTime: TfrmSetLoggerTime;
var
RecAffected, tmpOleVar:OleVariant;
cmdObj: _Command;
ParDataLoggerID, ParUdapteTime :_Parameter;
begin
tmpOleVar:=OleCtrls.EmptyParam;
frmSetLoggerTime := TfrmSetLoggerTime.Create(self);
try
frmSetLoggerTime.dtpToDate.DateTime := now;
if frmSetLoggerTime.ShowModal = mrOK then
begin
cmdObj := CoCommand.Create;
cmdObj.Set_ActiveConnection(DBRemoteModule.SLogConnection.ConnectionObject);
cmdObj.CommandType := adCmdStoredProc;
cmdObj.CommandText := 'UpdateRebelDateTime';
ParUdapteTime := cmdObj.CreateParameter('@UdapteTime', adDate, adParamInput, 3, frmSetLoggerTime.dtpToDate.DateTime);
cmdObj.Parameters.Append(ParUdapteTime);
ParDataLoggerID := cmdObj.CreateParameter('@DataLoggerID', adInteger, adParamInput, 4, QueryLogger.FieldByName('DataLoggerID').AsInteger);
cmdObj.Parameters.Append(ParDataLoggerID);
cmdObj.Execute(RecAffected, tmpOleVar, 0);
end;
finally
frmSetLoggerTime.free;
end;
end;
는 저장 프로 시저입니다 :
ALTER PROCEDURE [dbo].[UpdateRebelDateTime] @UpdateDateTime datetime, @DataLoggerID int
AS
SET NOCOUNT ON
UPDATE tblDataLoggers SET UpdateDateTime = @UpdateDateTime, UpdateDateTimeDelay = GETUTCDATE()
WHERE DataLoggerID = @DataLoggerID
을이이 시대의 대부분의 작업 왜 인 경우에? – ppetkov