Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

blob -> Query [D6, Access]


fess ©   (2005-02-03 19:05:00) 

Здравствуйте мастера!
Я все-таки сделал возможной запись с помощью Query в поле Blob рисунка!
Но тут передо мной встала полностью противоположная задача.. ;)

1) Как считать из поля Blob в поток TMemoryStream данные с помощью Query?!

2) Нужно просто создать копию строки в определенной таблице, одним из полей которой является поле BLOB. Как сделать это с помощью Query?!
Заранее спасибо всем, кто примет участие в решении моей проблемы.


Соловьев   (2005-02-04 10:52:00) [1]


> Просветите пожалуйста, что означают квадратные скобки в
> [Image]?

если вдруг тебе приспичит назвать поле как зарезервированное, то можно, но для этого надо его в [] взять.


Соловьев   (2005-02-04 10:42:00) [2]

а с каких єто пор в select поля в скобки "(" и ")" берутся?


fess   (2005-02-03 20:11:00) [3]

Просветите пожалуйста, что означают квадратные скобки в [Image]?


fess   (2005-02-03 20:08:00) [4]

Ок! ;) Но надо все попробывать, чтобы потом выбрать лучшее...
Я везде поставил [image]. Теперь такая ошибка :Ошибка в инстркции (запятая)  SELECT (NameOfQuest, Dt, Id_Topic, 2, Id_Razdel, Id_Discip, Difficulty_Test, The_Right_Answer, Subtype_Task, Flag_Image, [Image])
Что ему на этот раз ненравится?!


Соловьев   (2005-02-03 19:35:00) [5]


> dm.ADOTableQuest.

за это бить надо :)
используй TADODatSet


Соловьев   (2005-02-03 19:30:00) [6]


> dm.q.SQL.Add('INSERT INTO Quest (NameOfQuest, Dt, Id_Topic,
> Nmb_Quest, Id_Razdel, Id_Discip, Difficulty_Test, The_Right_Answer,
> Subtype_Task, Flag_Image, Image) ');

[Image]?


fess   (2005-02-03 19:29:00) [7]

Ошибка в INSERT into...... :(


fess   (2005-02-03 19:28:00) [8]

Возникает ошибка... ;(
я делаю след. образом:

dm.q.Active:=false;
dm.q.SQL.Clear;
dm.q.SQL.Add('INSERT INTO Quest (NameOfQuest, Dt, Id_Topic, Nmb_Quest, Id_Razdel, Id_Discip, Difficulty_Test, The_Right_Answer, Subtype_Task, Flag_Image, Image) ');
dm.q.SQL.Add(' SELECT (NameOfQuest, Dt, Id_Topic, '+IntToStr(Nmb+1)+', Id_Razdel, Id_Discip, Difficulty_Test, The_Right_Answer, Subtype_Task, Flag_Image, Image) FROM Quest WHERE Id_Quest = '+IntToStr(Id_Quest));
dm.q.ExecSQL;
dm.ADOTableQuest.Active:=false;
dm.ADOTableQuest.Active:=true;
dm.ADOTableQuest.Sort:='Nmb_Quest';
dm.ADOTableQuest.Locate('NameOfQuest', s, [loCaseInsensitive]);


Соловьев   (2005-02-03 19:17:00) [9]


> Но мне нужно не только скопировать определенный значения,
> но и некоторые поля в копируемой строке изменить?!

insert into table1 (field_blob, name)
select field_blob, 'копия'
from table1
where id = :p1


fess   (2005-02-03 19:16:00) [10]

Но мне нужно не только скопировать определенный значения, но и некоторые поля в копируемой строке изменить?!


Соловьев   (2005-02-03 19:07:00) [11]


> 2) Нужно просто создать копию строки в определенной таблице,
> одним из полей которой является поле BLOB. Как сделать это
> с помощью Query?!

insert into table1 (field_blob)
select field_blob
from table1
where id = :p1


fess   (2005-02-03 19:06:00) [12]

Я пытался сделать так, но... ошибка! Хотя с table работает!

dm.ADOQueryBlob.Active:=false;
dm.ADOQueryBlob.SQL.Clear;
dm.ADOQueryBlob.SQL.Add('SELECT [Image] FROM Answer WHERE Id_Answer = '+IntToStr(Id_Answer));
dm.ADOQueryBlob.Active:=true;
(dm.ADOQueryBlob.FieldByName('Image') as TBlobField).SaveToStream(BitMap);


Наверх

Титульная страница Поиск, карта сайта Написать письмо