Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.17;
Скачать: CL | DM;

Вниз

OleContainer   Найти похожие ветки 

 
Ермек ©   (2004-01-26 02:48) [0]

Помогите разобраться с компонентом OleContainer
Пусть имеется 3 таблицы:
Master таблица - Rasdel
Detail таблица - Question
SubDetail таблица - Answer
Для этих таблиц создал Компоненты :
pFIBDataSetRasdel ,pFIBDataSetQUESTION, pFIBDataSetAnswer

Провожу вставку в таблицу - Answer blob-данные (вордовский текст)
Таким образом
При нажатии кнопки «Новый»:
procedure TFormDesignTest.Button38Click(Sender: TObject);
begin
pFIBDataSetAnswer.Append;
OleContainer2.DestroyObject;
OleContainer2.InsertObjectDialog;
OleContainer2.Enabled:=true;
end;
end;

При нажатии кнопки «Сохранить»
procedure TFormDesignTest.Button41Click(Sender: TObject);
Var s:Tstream;
begin
//Запись в базу данных
Try
S:=pFIBDataSetAnswer.CreateBlobStream(pFIBDataSetAnswer.FieldByName("NAMEANSWER"),bmReadWrite);
OleContainer2.SaveToStream(S);
pFIBDataSetAnswer.Post;
finally
S.Free;
//чтение из базы данных в OleContainer
if not(pFIBDataSetAnswer.FieldByName("NAMEANSWER").IsNull) then
Try
S:=pFIBDataSetANSWER.CreateBlobStream(pFIBDataSetANSWER.FieldByName
("NAMEANSWER"),bmRead);
OleContainer2.LoadFromStream(S);
finally
S.Free;
end;
OleContainer2.Enabled:=false;

pFIBDataSetAnswer.Transaction.Commit;
pFIBDataSetRasdel.Open;
end;

При нажатии кнопки «Удалить»

procedure TFormDesignTest.Button40Click(Sender: TObject);
begin
OleContainer2.Enabled:=true;
pFIBDataSetAnswer.delete;
OleContainer2.DestroyObject;
OleContainer2.InsertObjectDialog;
OleContainer2.Enabled:=false;
end;

Вопросы такие;
1. Что надо изменить в коде чтобы при длительной вставки данных
Не возникло сообщение «не хватки памяти»?
2. Что можно сделать чтобы не выходила окошко выбора объектов а загружала сразу вордоский документ по клику по OleContainerу?
3. Что можно сделать чтобы окошко OleContainer было не серым а например белым?
4. Где можно найти инфу, который рассматривает случай когда существует 1Detail таблица и несколько Master таблицы для компонента pFIBDataSet


 
ЮЮ ©   (2004-01-26 04:24) [1]

1) Где можно найти инфу, который рассматривает случай когда существует 1Detail таблица и несколько Master таблицы для компонента pFIBDataSet

Здавый смысл такого не допускает :-)
Если только Detail таблица - это запрос с несколькими параметрами, часть из которых определяется по Master1, а другая по Master2, то следует отказаться от прямого указания Master-Detail связей и организовать их программно, обратывая, например, AfterScroll Master1 и Master2, устанавливая нужные параметры и переоткрывая запрос.


 
Ермек ©   (2004-01-27 01:31) [2]

Спасибо ЮЮ за ответ,
но все же Что надо изменить в коде чтобы при длительной вставки данных
Не возникло сообщение «не хватки памяти»?


 
ЮЮ ©   (2004-01-27 02:53) [3]

Кабы ещё знать, что ты прнимаешь под "длительной вставки данных".
А ещё лучше фрагмент кода



Страницы: 1 вся ветка

Текущий архив: 2004.02.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
1-53591
Genry
2004-02-06 21:31
2004.02.17
Как правильно присвоить PChar переменной String


7-53782
mrAld
2003-11-30 21:29
2004.02.17
Delphi и MMX


1-53540
КомофОнСамый
2004-02-05 14:07
2004.02.17
TRadioGroup - можно ли Items выстроить горизонтально?


1-53538
Ivolg
2004-02-05 14:36
2004.02.17
Скин


1-53515
alless
2004-02-05 18:28
2004.02.17
Word