delphi 使用sql存储过程问题

表createtablebiaodan(wordchar(3),orderdatechar(8),numberint,primarykey(word,orderdate,...
create table biaodan
(word char(3),
orderdate char(8),
number int,
primary key(word,orderdate,number)
)
存储过程
create proc danhao @p_word char(3),@p_orderdate char(8),@p_number int output,@p_newnum int output
as
set @p_number=1
set @p_newnum=@p_number
if exists (select word,orderdate,number from biaodan where word=@p_word and orderdate=@p_orderdate and number=@p_newnum)
begin
set @p_newnum=(select max(number)from biaodan where word=@p_word and orderdate=@p_orderdate)+1
insert into biaodan(word,orderdate,number)
values(@p_word,@p_orderdate,@p_newnum)
end
else
begin
insert into biaodan(word,orderdate,number)
values(@p_word,@p_orderdate,@p_newnum)
end

delphi中代码
word:='OUT';
orderdate:=formatdatetime('yyyymmdd',now);

datasource1.DataSet:=adostoredproc1;
adostoredproc1.Close;
adostoredproc1.Open;
adostoredproc1.ProcedureName:='danhao;1';
adostoredproc1.Parameters.Refresh;
adostoredproc1.Parameters[1].Value:=word;
adostoredproc1.Parameters[2].Value:=orderdate;
adostoredproc1.Parameters[3].Value:='';
adostoredproc1.Parameters[4].Value:='';

为什么总是提示ordedate为null无法插入???
无论adostoredproc1.Parameters[2].Value:=什么它都提示无法插入空值
展开
 我来答
kaviechen
2009-05-14 · TA获得超过251个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:372万
展开全部
没看全,不明白你想干什么,但是
adostoredproc1.Parameters[3].Value:='';
标识参数为空?并且该字段设置了主键

另外@p_newnum是OUTPUT类型,怎么去insert?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式