Два вопроса!
1) Как засунуть в ресурсы БД MSAccess и соответственно как ее оттуда достать?
2) Как чарез ADO засунуть картинку в БД MSAccess и соответственно достать эту картинку!
Спасибо заранее!
Помогите люди добрые :)
1) Как засунуть в ресурсы БД MSAccess и соответственно как ее оттуда достать?
2) Как чарез ADO засунуть картинку в БД MSAccess и соответственно достать эту картинку!
Спасибо заранее!
Опиши эти поля в таблице с типом OLE object. Из справки по Access:
OLE Object An object (such as a Microsoft Excel spreadsheet, a Microsoft Word document, graphics, sounds, or other binary data) linked to or embedded in a Microsoft Access table. Up to 1 gigabyte (limited by available disk space)
Опиши эти поля в таблице с типом OLE object
У меня нет таблиц, только Query.
У меня нет таблиц, только Query.
В бд Access, в таблицах такие поля должны быть типа OLE Object. Выбираешь их через select и обрабатываешь как OLE
В бд Access, в таблицах такие поля должны быть типа OLE Object. Выбираешь их через select и обрабатываешь как OLE
Александр в Акчесе у меня есть поля ОЛЕ, а как обработать по-подробнее нельзя! Я только учусь :)
Этот код не работает, почему не подскажите?
((TBlobField *)fMain->ADOQ->FieldByName("Image"))->SaveToStream(ms);
iImage->Picture->Bitmap->LoadFromStream(ms);
Александр в Акчесе у меня есть поля ОЛЕ, а как обработать по-подробнее нельзя! Я только учусь :)
Этот код не работает, почему не подскажите?
((TBlobField *)fMain->ADOQ->FieldByName("Image"))->SaveToStream(ms);
iImage->Picture->Bitmap->LoadFromStream(ms);
Попробуй вместо TImage TOleContainer
Попробуй вместо TImage TOleContainer
Ничего не получается! Блин мне диплом сдавать уже, а у меня нифига не получается! :'(
А с первым вопросом как?
Ничего не получается! Блин мне диплом сдавать уже, а у меня нифига не получается! :'(
А с первым вопросом как?
Ну так же в OLE и засовывать. Подожди я щас примерчик наваяю
Ну так же в OLE и засовывать. Подожди я щас примерчик наваяю
Жду, весьма признателен за помощь!
Жду, весьма признателен за помощь!
Прошу прощения за такую задержку, но как то это не просто получилось.
Значи так. С ADO у меня не получилось, зато получилось с BDE.
1. В ODBC завел system dsn с провайдером Microsoft Access driver (*.mdb)
2. В BDE администраторе создал БД c этим DSN
3. На форме рассположил DBImage,DBGrid и кнопку добавить.
4. DataSource1 назначил для DBGrid и DBImage
вот что получилось:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
//это заполнение, высветка автоматом через DBImage
OpenDialog1->Execute();
if(Table1->FieldByName("images")->IsBlob(__classid(TField)))
{
Table1->Insert();
TBlobField* im = (TBlobField*)Table1->FieldByName("images");
im->LoadFromFile(OpenDialog1->FileName);
Table1->Post();
}
}
ЗЫ: Покоя не давал вопрос с ADO. Выяснил можно и через ADO, но обязательно через ODBC провайдера.
Ничего не получается! Блин мне диплом сдавать уже, а у меня нифига не получается! :'(
F1->Index->ADOBlobStream Ok.
ADOTable1->Edit();
TADOBlobStream *BS = new TADOBlobStream(ADOTable1->Fields->Fields[1], bmWrite);
try
{
S = Memo1->GetTextLen() + 1;
char *P = new char;
Memo1->GetTextBuf(P, S);
BS->Write(P.c_str(), P.Length());
}
__finally
{
delete BS;
}
Как картинку запихнуть догадаешься?
А с первым вопросом как?
Вообщем не понял зачем "засовывать БД Access в ресурсы", ну ладно...
Засовывать как и любой др. файл.
/*NAME TYPE FILE*/
base RCDATA your.mdb
//in cpp
TResourceStream *rs = new
TResourceStream((int)HInstance,AnsiString("base"),RT_RCDATA);
Midas->SaveToFile("your.mdb");
delete rs ;
Прошу прощения за такую задержку, но как то это не просто получилось.
Значи так. С ADO у меня не получилось, зато получилось с BDE.
Нет BDE не подходит никак, но все равно спасибо!
Как картинку запихнуть догадаешься?
Не догадаюсь, поможешь?
Нет BDE не подходит никак, но все равно спасибо!
Не догадаюсь, поможешь?
Посмотри мой ЗЫ в предыдущем топике. Можно и через ADO. Но провайдер должен быть через ODBC.