读书人

:C++ Builder 如何得到Access中.mdb表

发布时间: 2012-02-03 22:02:47 作者: rapoo

高手请进:C++ Builder 怎么得到Access中.mdb表里的OLE对象字段内容
我有个.mdb表,我想读取表中OLE对象的字段。该怎么做。

如果你写的代码或意建对我有帮助。均可得分。

[解决办法]
这个是读图像的,读其他的相应的改一下就行了

C/C++ code
   TBlobField * pField1=(TBlobField *)DM->DataReadADOQuery->FieldByName("PepolePhoto");   if(!pField1->IsNull)     {   TADOBlobStream* pmem=new TADOBlobStream (pField1,bmRead);   pmem->Seek(0,soFromBeginning);   TJPEGImage *jpg = new TJPEGImage();   jpg->LoadFromStream(pmem);   Image1->Picture->Assign(jpg);   delete jpg;   delete pmem;     } else {         Image1->Picture = NULL;         Image1->Update();            }
[解决办法]
filestream吧。
[解决办法]
ini文件完全可以保存在 备注 类型的字段里,这样读写都方便,为什么一定要保存在 ole对象里呢?是文件特别大吗?
[解决办法]
C/C++ code
void __fastcall TForm1::Button1Click(TObject *Sender){  TADOQuery *Query = new TADOQuery(Application);  Query->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExtractFilePath(Application->ExeName) + "1.mdb;";  Query->SQL->Text = "insert into  table1(ee)values('asddasd')";  Query->ExecSQL();  TMemoryStream *Inifile = new TMemoryStream();  Inifile->LoadFromFile("123.ini");  Query->SQL->Text = "update table1 set asd =:PHOTO where ee ='asddasd'" ;  Query->Parameters->Items[0]->LoadFromStream(Inifile,ftBlob) ;  Query->ExecSQL();  Query->Close();  delete Query;  delete Inifile;}
[解决办法]
你的INI文件适合用备注字段。
TStringList *file=new TStringList();
file->LoadFromFile("123.ini");

..............................//这里省略了读取库表
ADOQuery1->FieldByName("IniFile")->AsString=file->Text;
........................
[解决办法]
读取就相反


TStringList *file=new TStringList();

..............................//这里省略了读取库表
file->Text=ADOQuery1->FieldByName("IniFile")->AsString;
file->SaveToFile("123.ini");
........................
[解决办法]
读取后存到文件的代码,我测试的table1表里面只有3个字段,其中asd就是ole类型的。新手不怕,多试试就会了。
C/C++ code
void __fastcall TForm1::Button2Click(TObject *Sender){  TADOQuery *Query = new TADOQuery(Application);  Query->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExtractFilePath(Application->ExeName) + "1.mdb;";  Query->SQL->Text = "select * from table1 where ee ='asddasd'";  Query->Open();  TBlobField * pField1=(TBlobField *)Query->FieldByName("asd");     if(!pField1->IsNull)     {   TADOBlobStream* pmem=new TADOBlobStream (pField1,bmRead);   pmem->Seek(0,soFromBeginning);   TMemoryStream *Inifile = new TMemoryStream();   Inifile->LoadFromStream(pmem);   Inifile->SaveToFile("12345.ini");   delete Inifile;   delete pmem;     }  Query->Close();  delete Query;} 

读书人网 >C++ Builder

热点推荐