存储过程参数传递Bolb类型出错 ( 积分: 30 )

  • 主题发起人 主题发起人 piaoping
  • 开始时间 开始时间
P

piaoping

Unregistered / Unconfirmed
GUEST, unregistred user!
存储过程是这样写的<br>CREATE&nbsp;PROCEDURE&nbsp;dbo.pPCStyle3Add<br>(@StyleNo&nbsp;varchar(30),<br>@PO&nbsp;varchar(30),<br>@Memo&nbsp;varchar(50),<br>@PIC&nbsp;Image)<br>AS&nbsp;INSERT&nbsp;INTO&nbsp;dbo.tPCStyle<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(StyleNo,&nbsp;PO,&nbsp;Memo)<br>VALUES&nbsp;(@StyleNo,&nbsp;@PO,&nbsp;@Memo)<br>Select&nbsp;1&nbsp;as&nbsp;ReturnValue<br>窗体1上的button的代码是<br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>vars<br>&nbsp;&nbsp;Strm:TmemoryStream;<br>&nbsp;&nbsp;JPG:TJPEGImage;<br>&nbsp;&nbsp;PicName:String;<br>begin<br>&nbsp;&nbsp;if&nbsp;OpenPictureDialog1.Execute&nbsp;then<br>&nbsp;&nbsp;begin&nbsp;<br>&nbsp;&nbsp;&nbsp;//读取图片,生成内存流<br>&nbsp;&nbsp;&nbsp;PicName:=UpperCase(ExtractFileName(OpenPictureDialog1.Files.Strings[0]));<br>&nbsp;&nbsp;&nbsp;JPG:=TJPEGImage.Create;<br>&nbsp;&nbsp;&nbsp;JPG.CompressionQuality&nbsp;:=&nbsp;30;//压缩率<br>&nbsp;&nbsp;&nbsp;JPG.Compress;<br>&nbsp;&nbsp;&nbsp;JPG.JPEGNeeded;<br>&nbsp;&nbsp;&nbsp;Strm:=TmemoryStream.Create&nbsp;;<br>&nbsp;&nbsp;&nbsp;JPG.LoadFromFile(OpenPictureDialog1.Files.Strings[0]);<br>&nbsp;&nbsp;&nbsp;JPG.SaveToStream(Strm);<br>&nbsp;&nbsp;&nbsp;//调用存储过程,存储文字和图片&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;With&nbsp;ADOStoredProc2&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters.ParamByName('@StyleNO').Value&nbsp;:=PicName;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters.ParamByName('@PO').Value&nbsp;:='edit1.Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters.ParamByName('@Memo').Value&nbsp;:=edit1.Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parameters.ParamByName('@PIC').LoadFromStream(strm,ftblob);//有问题的句子<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepared;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecProc&nbsp;;<br>&nbsp;&nbsp;&nbsp;end&nbsp;;<br>&nbsp;&nbsp;end;<br>end;<br>点击button1存储过程可以执行,但就是表dbo.tPCStyle其他字段插入数据正确,但image字段PIC中总是为空,也就是流不能被插入数据到数据中,&nbsp;我觉得出问题的句子为Parameters.ParamByName('@PIC').LoadFromStream(strm,ftblob);请兄弟们帮忙指正呀
 
你的存儲過程有問題,你的存儲過程沒有把PIC字段插入進去,可能是你忘了吧.&nbsp;<br>改為以下試一下.<br>INSERT&nbsp;INTO&nbsp;dbo.tPCStyle<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(StyleNo,&nbsp;PO,&nbsp;Memo,PIC)<br>VALUES&nbsp;(@StyleNo,&nbsp;@PO,&nbsp;@Memo,@PIC)
 
接受答案了.
 
后退
顶部