Delphi调用Oracle存储过程插入图片
procedure TFrm_Main.UpLoad_Data(_FileName: string);
var
_Temp:string;
_id:string;
_stream,_stream1,_stream2:TMemoryStream;
begin
try
_Temp:=cxListBox1.items[cxListBox1.itemindex];
except
Application.MessageBox('请先选择图片,才能进行浏览!','提示',64);
Exit;
end;
ReadINIFile(cxButtonEdit1.Text,_FileName);
_Temp:= ExtractFilePath(_FileName);
Application.CreateForm(TFrm_LookPic,Frm_LookPic);
_FILE1:=_Temp + _FILE1;
_FILE2:= _Temp + _FILE2;
_FILE3:= _Temp + _FILE3;
_FILE4:= _Temp + _FILE4;
_stream:= TMemoryStream.Create;
_stream1:= TMemoryStream.Create;
_stream2:= TMemoryStream.Create;
_stream.LoadFromFile(_FILE1);
_stream.Position:= 0 ;
_stream1.LoadFromFile(_FILE2);
_stream1.Position:= 0 ;
_stream2.LoadFromFile(_FILE3);
_stream2.Position:= 0 ;
OraStoredProc1.Close;
OraStoredProc1.StoredProcName:= 'pro_mep_1';
OraStoredProc1.Params.CreateParam(ftString,'strHPZL',ptInput).AsString:= ''; //可以为空
OraStoredProc1.Params.CreateParam(ftString,'strHPHM',ptInput).AsString:= HPHM; //可以为空
OraStoredProc1.Params.CreateParam(ftDateTime,'strWFSJ',ptInput).AsDateTime:= Now; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strWFXW',ptInput).AsString:= '11'; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strWFDD',ptInput).AsString:= '1'; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strWFDZ',ptInput).AsString:= ''; //可以为空
OraStoredProc1.Params.CreateParam(ftString,'strCJJG',ptInput).AsString:= '1'; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strSJLY',ptInput).AsString:= '1'; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strZPLX',ptInput).AsString:= '1'; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strSBBH',ptInput).AsString:= '1'; //不可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strDLGLS',ptInput).AsInteger:= 0; //不可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strDLMS',ptInput).AsInteger:= 0; //不可以为空
OraStoredProc1.Params.CreateParam(ftString,'strFJBJ',ptInput).AsString:= ''; //可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strCLSD',ptInput).AsInteger:= StrToInt(WFCS); //可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strDCXS',ptInput).AsInteger:= StrToInt(WFXS); //可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strXCXS',ptInput).AsInteger:= 0; //可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strDCZFXS',ptInput).AsInteger:= 0; //可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strXCZFXS',ptInput).AsInteger:= 0; //可以为空
OraStoredProc1.Params.CreateParam(ftInteger,'strZDXS',ptInput).AsInteger:= 0; //可以为空
OraStoredProc1.Params.CreateParam(ftOraBlob,'strPhoto1',ptInput).LoadFromStream(_stream,ftOraBlob);
OraStoredProc1.Params.CreateParam(ftOraBlob,'strPhoto2',ptInput).LoadFromStream(_stream1,ftOraBlob);//不可以为空
OraStoredProc1.Params.CreateParam(ftOraBlob,'strPhoto3',ptInput).LoadFromStream(_stream2,ftOraBlob);//不可以为空
OraStoredProc1.Params.CreateParam(ftString,'out_ZXJG',ptOutput);
OraStoredProc1.ExecProc;
_id:= OraStoredProc1.Params.ParamByName('out_ZXJG').Value;
ShowMessage(_id);
end;
执行时出现指定的LOB定位器无效。谁知道,高分送上。