急急急!!! 关于两个存储过程的幼稚问题

xxx_20_02 2002-05-10 08:42:23
我的存储是
CREATE PROCEDURE AddReg
@un char(15),
@pw char(15),
@changpw char(15),
@quanxian int,
@begintime smalldatetime,
@endtime smalldatetime,
@name char(10),
@photo image,
@email char(50),
@result int output,
@errormsg char(50) output,
@AdminPW char(15)
AS
if exists ( select 用户名 from MyPower
where 用户名=@un)
begin
select @result=0
select @errormsg='用户名<'+rtrim(@un)+'>已经存在'
return (0)
end
Insert MyPower values(@un,@pw,@changpw,@quanxian,
@begintime,@endtime,@name,@photo,@email)
select @result=1
GO

问题一
我在客户端如何把 DBImage1的图像运用此存储过程进行添加
Power_ClientDataSet->Params->CreateParam(ftBlob,"@photo",ptInput);
if( Photo_Image->Picture!=NULL)
{
TBlobField * be=(TBlobField *)Power_ClientDataSet->Params->ParamByName("@photo");
TMemoryStream *m=new TMemoryStream();
Photo_Image->Picture->Bitmap->SaveToStream(m);
m->Seek(0,soFromBeginning);
be->LoadFromStream(m);
delete m;
}
else
Power_ClientDataSet->Params->ParamByName("@photo")->AsBlob=
NULL ;
我用这个方法,程序出错,说是什么内存错误,然后指向 delete m

问题二
int result=0;
Power_ClientDataSet->Params->CreateParam(ftInteger,"@result",ptOutput);
Power_ClientDataSet->Params->ParamByName("@result")->AsInteger=result ;

当我执行完后 我想取得 ParamByName("@result")的返回值
程序却说我varchar 转换为int 出错, 我怎么得到我的这个 @result
Power_ClientDataSet->Execute();
if( Power_ClientDataSet->Params->ParamByName("@result")->AsInteger==0)
{
String msg=Power_ClientDataSet->Params->ParamByName("@errormsg")->AsString;
ShowMessage("发生错误:"+msg);
}
...全文
37 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxx_20_02 2002-05-12
  • 打赏
  • 举报
回复
Yang_(扬帆破浪)
你能够给个例子吗?
Yang_ 2002-05-12
  • 打赏
  • 举报
回复
1、这样存图象是不行的!
2、所有参数要按次序CreateParam。
lya_lya 2002-05-11
  • 打赏
  • 举报
回复
up
tiger_qi 2002-05-11
  • 打赏
  • 举报
回复
gz

up
xxx_20_02 2002-05-11
  • 打赏
  • 举报
回复
我是在服务端用TADOStroredProc 然后用TClientDataSet和它连接的
我不懂电脑 2002-05-10
  • 打赏
  • 举报
回复
1存储过程是服务器端运行的,用TSToredProc

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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