sql server 中存储图片(100分)

  • 主题发起人 主题发起人 我的样子
  • 开始时间 开始时间

我的样子

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,小弟初来乍到,希望指点一二
如何在sql server 中存储图片,并利用C++Bulider 调出数据库中的图片,并且从c++bulider的应用程序中将图片存储到数据库中
 
在SQL2k中设计表时定义字段: 列名=Picture;
数据类型=image. 保存表名为dbPhoto
在BCB中,在[ADO]控件面版拖个ADOConnection1下来,填属性ADOConnection1->ConnectiuonString = Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=你的数据库名
ADOConnection1->LoginPrompt = false;
ADOConnection1->Connected = true;
再拖个ADOTable1下来,填属性ADOTable1->Connection = ADOConnection1;
ADOTable1->TableName = dbphoto;
ADOTable1->Active = true;
双击设计页面的ADOTable1,在出来的字段框中右击,选菜单的[add all fields],一个名为Picture的SQL图象字段对象就有了
保存图象:在你的程序里写:
dbPhoto.Edit ;
dbPhotoPicture.LoadFromFile(FileName) ;
dbPhoto.Post ;
显示:
在[Data Access]控件面版拖个DataSource1下来,填属性DataSource1->DataSet = ADOTable1;
在[Data Controls]控件面版拖个DBImage1下来,填属性DBImage1->DataSource = DataSource1;
DBImage1->DataField = Picture
 
直接用流存取:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int MemSize;
char *Buffer;
TBlobStream *Stream;
if (!Query1->Eof)
Query1->Next();
Stream = new TBlobStream((TBlobField *)Query1->FieldByName("Notes"), bmRead);
try
{
MemSize = Stream->Size + 1;
// add one for null terminator
Buffer = new char[MemSize];
// Allocate the memory.
try
{
Stream->Read(Buffer, MemSize);
//Read Notes field into buffer.
Memo1->SetTextBuf(Buffer);
// Display the buffer's contents.
}
catch (...)
{
delete Buffer;
throw;
}
delete Buffer;
}
catch (...)
{
delete Stream;
throw;
}
delete Stream;
}
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3313548
 
实在不好意思,前段时间在老家没有上网现在才给你加分,实在不好意思,请谅解
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部