我想把硬盘上的图片文件(比如:d:\pic\1.jpg)写入一个表的image字段中(比如student表的picture字段),应该如何写sql语句?
---------------------------------------------------------------
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
---------------------------------------------------------------
if(DATABASE_STATE==INSERT)
{
AnsiString st;
TMemoryStream *tmp = new TMemoryStream();
DBI1->Picture->SaveToFile("TTT.jpg");
tmp->LoadFromFile("TTT.jpg");
DeleteFile("TTT.jpg");
ADOQuery1->Parameters->ParamByName("PIC")->LoadFromStream(tmp,ftBlob);
ADOQuery1->Parameters->ParamByName("TD")->Value=DP1->Date;
st="摄于"+ DP1->Date;
ADOQuery1->Parameters->ParamByName("JPEG")->Value=JpegOrBmp?"BMP":"JPEG";
ADOQuery1->Parameters->ParamByName("IDI")->Value=MEM1->Text + st;
ADOQuery1->Parameters->ParamByName("HEI")->Value=BT->Height;
ADOQuery1->Parameters->ParamByName("WID")->Value=BT->Width;
ADOQuery1->ExecSQL();
ShowMessage("保存" + IntToStr(tmp->Size ));
ShowMessage("成功保存图片!");
delete tmp;
return;
}
---------------------------------------------------------------
用fileread()函数把图片读到一个blob型变量里,然后用
updateblob 表名
set image字段 = :blob型变量
where ......