我的存储过程是这样的:
CREATE PROCEDURE user_ck_khhj
@ckslhj float output,  
@cbjehj float output,
@jjjehj float output,
@xsjehj float output,
@ckrq_qs datetime,
@ckrq_jz datetime,
@kf [nvarchar] (1),
@ckdh [nvarchar] (10)
AS
select @ckslhj=sum(cksl),@cbjehj=sum(cbje),@jjjehj=sum(jjje),@xsjehj=sum(xsdj*cksl) from View_ck_kh_spdm
where ckrq>=@ckrq_qs and ckrq<=@ckrq_jz and (kf like '%'+@kf+'%') and (ckdh like '%'+@ckdh+'%')
GO
在delphi中这样处理:
   AdoQuery_ckcx.Open;
   ADOStoredProc1.Parameters[5].Value := datetimepicker1.Date;
   ADOStoredProc1.Parameters[6].Value := datetimepicker2.Date;
   ADOStoredProc1.Parameters[7].Value := comboBox_kf.Text;
   ADOStoredProc1.Parameters[8].Value := Edit_ckdh.Text;   ADOStoredProc1.Prepared;
   ADOStoredProc1.ExecProc;
   Edit_slhj.Text := ADOStoredProc1.Parameters[1].Value;
   Edit_cbhj.Text := ADOStoredProc1.Parameters[2].Value;
   Edit_jjhj.Text := ADOStoredProc1.Parameters[3].Value;
   Edit_xjhj.Text := ADOStoredProc1.Parameters[4].Value;我已经赋初值:
  EDit_ckdh.text := '';
  ComboBox_kf.text := '';
在Edit_ckdh中如果不输入任何内容,却出现了如下提示:
 不允许从数据类型text到nvarchar的隐性转换。请使用Convert函数来运行查询。
我在未加Edit_ckdh内容时,没有问题,但我加了后,却出现这种问题,不知道是什么原因?
  另外,我如果在Edit_ckdh中输入正确的数据库数据内容,就能进行计算?但是如果是在数据中没有的内容也出现错误:“Invalid variant type conversion."
  我刚刚接触存储过程,不太明白,不知道如何应用转换,convert 希望各位高手指点!