procedure TForm1Button1Click(Sender: TObject);
var Conn:TAdoConnection;
strm:TStream;
qry:TAdoQuery;
begin
strm:=TMemoryStreamCreate;
image1PictureBitmapSaveToStream(strm);
conn:=TAdoConnectionCreate(nil);
connConnectionString:='provider=MicrosoftJetOleDB40;Data Source=d:\amdb';
connLoginPrompt:=false;
connOpen;
qry:=TAdoQueryCreate(nil);
qrySQLText := 'insert into test(pic) values (:pic)';
qryConnection :=conn;
qryParametersParseSQL(qrySQLText ,true);
qryParametersParamByName('pic')LoadFromStream(strm,ftBlob);
qryExecSQL;
connClose;
connFree;
qryFree;
strmFree;
end;
procedure TForm1Button2Click(Sender: TObject);
var Conn:TAdoConnection;
strm:TStream;
qry:TAdoQuery;
begin
conn:=TAdoConnectionCreate(nil);
connConnectionString:='provider=MicrosoftJetOleDB40;Data Source=d:\amdb';
connLoginPrompt:=false;
connOpen;
qry:=TAdoQueryCreate(nil);
qrySQLText := 'select pic from test';
qryConnection :=conn;
qryOpen ;
strm:=qryCreateBlobStream(qryFieldByName('pic'),bmRead);
image2PictureBitmapLoadFromStream(strm);
qryClose;
connClose;
connFree;
qryFree;
strmFree;
end;
procedure TForm1FormShow(Sender: TObject);
var jpg:TJpegImage;
bmp:TBitMap;
begin
jpg:=TJpegImageCreate;
bmp:=TBitMapCreate;
jpgLoadFromFile('C:\Users\Administrator\Pictures\psujpg');
bmpAssign(jpg);
image1PictureBitmap:=bmp;
end;
另一个数据库也要是image的类型,然后在数据库的安全的连接吧好像是,添加另一个服务器的链接方式。然后就能在这个服务器 *** 作另一台服务器的数据库了。调用方式:[19216812]dbnamedbotablename
如果非要写sql语句如下,要将image转化为二进制
INSERT INTO tbl VALUES (1,0xFFFFFFFF)
注意在写入图形信息前必须先将此数据库的 'select into/bulkcopy' 属性设置为 True ,其语法如下:
use master
exec sp_dboption Im_Test ,'select into/bulkcopy' ,True
public void InsertIMG()
{
//将需要存储的读取为数据流
FileStream fs = new FileStream(@"D:\ajpg", FileModeOpen,FileAccessRead);
Byte[] b = new byte[fsLength];
fsRead(b , 0, ConvertToInt32(fsLength));
fsClose();
using (SqlConnection conn = new SqlConnection(sqlconnstr))
{
connOpen();
SqlCommand cmd = new SqlCommand();
cmdConnection = conn;
cmdCommandText = "insert into tbl(imgfile) values(@imgfile)";
SqlParameter par = new SqlParameter("@imgfile", SqlDbTypeImage);
parValue = b;
cmdParametersAdd(par);
int t=(int)(cmdExecuteNonQuery());
if (t > 0)
{
ConsoleWriteLine("插入成功");
}
connClose();
}
}
你的思路就错了,你不管用什么SSH,还是SH,还是struts20,还是JSP,等。不管用什么语言,或开发技术,
你不是插入的images类型的数据, 而是你插入的是 images的路径,insert到数据库当中的某个栏位上,另一个栏位 再存放它的images的名字。
就是二进制数据。
在数据库中创建一个Image类型的字段(二进制)
把文件的内容读到字节数组中,然后把字节数组保存到Image字段里。
从Image字段里读取出二进制数据,保存到一个字节数组中,然后写到文件或者流里再显示出来。
以上就是关于delphi image图片如何插入到数据库全部的内容,包括:delphi image图片如何插入到数据库、SQL 中如何将一个服务器里的数据库的IMAGE类型的数据插入到另一个服务器上的数据库里面、如何用insert语句把插入image类型记录到数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)