procedure TfrmSetSysConfig.btnOKClick(Sender: TObject);
var
Mysp:TADOStoredProc;
begin
MySp := TadoStoredProc.Create( Application );
with MySp do
try
begin
Connection := Adocon;
ProcedureName := 'sql..sp_sys_config_set';
Parameters.CreateParameter('@operator_no', ftInteger, pdInput, 4, CommonInfo.OperatorNo);
Parameters.CreateParameter('@op_station', ftstring, pdInput, 12, CommonInfo.MAC);
Parameters.CreateParameter('@action', ftInteger, pdInput, 12, 2);
Parameters.CreateParameter('@config_no', ftInteger, pdInput, 4, strtoint(edtConfigNo.Text));
Parameters.CreateParameter('@config_name', ftstring, pdInput, 64, edtConfigName.Text);
Parameters.CreateParameter('@access_level', ftInteger, pdInput, 4, cmbAccessLevel.itemindex);
Parameters.CreateParameter('@date_type', ftInteger, pdInput, 255, cmbDataType.itemindex);
if cmbDataType.ItemIndex = 0 then
Parameters.CreateParameter('@char_config', ftstring, pdInput, 1,edtconfig.text);
if cmbDataType.ItemIndex = 1 then
Parameters.CreateParameter('@int_config', ftInteger, pdInput, 4, strtoint(edtconfig.text));
if cmbDataType.ItemIndex = 2 then
Parameters.CreateParameter('@str_config', ftstring, pdInput, 600, edtconfig.text);
Parameters.CreateParameter('@note', ftstring, pdInput, 600, mmNote.Text);
Parameters.CreateParameter('@error_info', ftString, pdOutput, 255, '');
ExecProc;
if Parameters.ParamByName('@error_info').Value <> '' then
begin
ErrorFrm(Parameters.paramByName('@error_info').Value,1);
end
else
begin
MessageDlg( '系统配置成功!' , mtInformation, [mbOK], 0 );
end;
end;
except
MySp.free;
end;
MySp.free;
end;存储过程中各参数类型如下:
DECLARE @RC int
DECLARE @operator_no int
DECLARE @op_station char(12)
DECLARE @action int
DECLARE @dict_entry int
DECLARE @subentry int
DECLARE @access_level int
DECLARE @dict_prompt varchar(255)
DECLARE @error_info varchar(600)
var
Mysp:TADOStoredProc;
begin
MySp := TadoStoredProc.Create( Application );
with MySp do
try
begin
Connection := Adocon;
ProcedureName := 'sql..sp_sys_config_set';
Parameters.CreateParameter('@operator_no', ftInteger, pdInput, 4, CommonInfo.OperatorNo);
Parameters.CreateParameter('@op_station', ftstring, pdInput, 12, CommonInfo.MAC);
Parameters.CreateParameter('@action', ftInteger, pdInput, 12, 2);
Parameters.CreateParameter('@config_no', ftInteger, pdInput, 4, strtoint(edtConfigNo.Text));
Parameters.CreateParameter('@config_name', ftstring, pdInput, 64, edtConfigName.Text);
Parameters.CreateParameter('@access_level', ftInteger, pdInput, 4, cmbAccessLevel.itemindex);
Parameters.CreateParameter('@date_type', ftInteger, pdInput, 255, cmbDataType.itemindex);
if cmbDataType.ItemIndex = 0 then
Parameters.CreateParameter('@char_config', ftstring, pdInput, 1,edtconfig.text);
if cmbDataType.ItemIndex = 1 then
Parameters.CreateParameter('@int_config', ftInteger, pdInput, 4, strtoint(edtconfig.text));
if cmbDataType.ItemIndex = 2 then
Parameters.CreateParameter('@str_config', ftstring, pdInput, 600, edtconfig.text);
Parameters.CreateParameter('@note', ftstring, pdInput, 600, mmNote.Text);
Parameters.CreateParameter('@error_info', ftString, pdOutput, 255, '');
ExecProc;
if Parameters.ParamByName('@error_info').Value <> '' then
begin
ErrorFrm(Parameters.paramByName('@error_info').Value,1);
end
else
begin
MessageDlg( '系统配置成功!' , mtInformation, [mbOK], 0 );
end;
end;
except
MySp.free;
end;
MySp.free;
end;存储过程中各参数类型如下:
DECLARE @RC int
DECLARE @operator_no int
DECLARE @op_station char(12)
DECLARE @action int
DECLARE @dict_entry int
DECLARE @subentry int
DECLARE @access_level int
DECLARE @dict_prompt varchar(255)
DECLARE @error_info varchar(600)
你的create的参数和数据库里的都不匹配啊!