如何在delphi中调用sql的存储过程?????数据库的课程设计,以前没有学过delphi用了两天的时间自习了一点点,不是很懂

qq_33870833 2016-12-10 10:28:10
sql server中的存储过程
--添加产品的存储过程
Create proc up_insert_proc
@产品号 char(20) ,
@产品名 char(100),
@单价 money,
@规格 float ,
@库存量 int
as
begin
if exists(select * from 产品 where 产品号=@产品号)
begin
begin
print'该产品已经存在' --有相同的数据,直接返回值
end
begin
update 产品 set 库存量=@库存量+库存量 where 产品号=@产品号
print'更新该产品信息成功' --有主键相同的数据,进行更新处理
end
end
else
begin
insert into 产品(产品号,产品名,单价,规格,库存量) values(@产品号,@产品名,@单价,@规格,@库存量)
print '添加产品成功' --没有相同的数据,进行插入处理
end
end
go


delphi中调用存储过程代码
procedure TForm3.Button1Click(Sender: TObject);
var
ret:integer;
begin
with ADOStoredProc1 do
begin
Close;
ProcedureName:='up_inset_proc';
Parameters.Clear;
Parameters.Refresh;
Parameters.ParamByName('@产品号').Value:= Edit3.text;
Parameters.ParamByName('@产品名').Value:= Edit4.text;
Parameters.ParamByName('@单价').Value:= Edit5.text;
Parameters.ParamByName('@规格').Value:= Edit6.text;
Parameters.ParamByName('@库存量').Value:= Edit7.text;
ExecProc;
ret:= Parameters.ParamByName('@return_value').Value;
end;
end;







...全文
776 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
东南西北风 2016-12-15
  • 打赏
  • 举报
回复
楼主错误提示的很清楚了,@产品名 没有找到啊。
sanyuan35 2016-12-15
  • 打赏
  • 举报
回复
没有找到未找到参数@产品号,是否没有定义该参数
juno_393 2016-12-14
  • 打赏
  • 举报
回复
未找到参数@产品号。你的参数只是在sql中定义的。不是在D里面定义的。所以找不到。通过读取参数的下标去查找。
npkaida 2016-12-11
  • 打赏
  • 举报
回复
procedure TForm3.Button1Click(Sender: TObject); var ret:integer; begin with ADOStoredProc1 do begin Close; ProcedureName:='up_inset_proc'; Parameters.Clear; Parameters.Refresh; Parameters.Params[0].Value:= Edit3.text; Parameters.Params[1].Value:= Edit4.text; Parameters.Params[2].Value:= Edit5.text; Parameters.Params[3].Value:= Edit6.text; Parameters.Params[4].Value:= Edit7.text; ExecProc; ret:= Parameters.Params[5].Value; end; end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧