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

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

И снова картинки ...


aleliko ©   (2005-05-23 13:22:00) 

Всем привет!
Я хочу поднять вопрос, который уже, наверняка, обсуждался в этом форуме - добавление картинок в базу данных.
Я поискал по ключевым словам, но не нашел ничего подходящего.
По найденному мной, я смог сваять только что-то типа:
procedure TForm1.Button2Click(Sender: TObject);
var
//   JPEGImage:TJPEGImage;
  MemoryStream:TMemoryStream;
//   Image:TBlobField;

begin
 MemoryStream:=TMemoryStream.Create;
// JPEGImage:=TJPEGImage.Create;
    datamodule2.ADOQuery2.Close();
    form1.Image1.Picture.Bitmap.SaveToStream(MemoryStream);
    datamodule2.ADOQuery3.Parameters[0].LoadFromStream(MemoryStream);
    datamodule2.ADOQuery3.ExecSQL;
    datamodule2.ADOQuery2.Open();
    MemoryStream.Free;
end;

Но прога не работает =\
Подскажите, пожалуйста, в чем ошибка?


aleliko   (2005-05-23 14:20:00) [1]

Выборку делает Query2
select foto from inf_pers where fio='...'
query3, как я уже писал
update kirovtelecom_pers
set foto = :fot
where fio='...'
Поле fio содержит уникальные значения
(хотя это и не совсем корректно)


msguns   (2005-05-23 14:17:00) [2]

Query3 делает выборку по условию-картинке ?


aleliko   (2005-05-23 14:11:00) [3]

Признаю свою ошибку - поторопился =\

1. При компиляции появляется ошибка
[Error] Unit1.pas(57): Not enough actual parameters
ясно, что не хватает параметров в
LoadFromStream(MemoryStream); (требует DataType)

Пишу:
datamodule2.ADOQuery3.Parameters[0].LoadFromStream(MemoryStream, ftBlob);
или
datamodule2.ADOQuery3.Parameters[0].LoadFromStream(MemoryStream, DataType: ftBlob);
Получаю:
[Error] Unit1.pas(57): Undeclared identifier: 'DataType'
[Error] Unit1.pas(57): 'END' expected but ')' found
Понятно, что хочет ")" и говорит, что неизвестная переменная ...
Везде, где я нашел инфу про блоб не упоминается, что нужны доп параметры, поэтому я растерялся =\

2. У меня создана база на sqlserver есть поле image
ADOQuery2 содержит селект, выбирающий первую ячейку поля, куда я пытаюсь апдейтить картинку. ADOQuery3 содержит апдейт той же ячейки
update kirovtelecom_pers
set foto = :fot
where fio='...'
переменная fot задана, как ftBlob.

Вопрос: Какие нужны доп параметры, какого типа?
Если я раскомментирую строку
Image:TBlobField;
то появляется ошибка
[Error] Unit1.pas(50): Undeclared identifier: 'TBlobField'
Происхождение этой ошибки я вообще разгадать не могу
ДНК ...


Johnmen   (2005-05-23 13:39:00) [4]

...и что такое ADOQuery3 ?


Zacho   (2005-05-23 13:30:00) [5]

aleliko ©   (23.05.05 13:22)
Но прога не работает =\
Подскажите, пожалуйста, в чем ошибка?


В ДНК.

А конкретно, в нежелании написать корректный вопрос.
Что значит "не работает" ??? Где текст сообщения об ошибке ? Где указаны СУБД и компоненты доступа ???
Или ты думаешь что это форум телепатов ?

RTFM http://ln.com.ua/~openxs/articles/smart-questions-ru.html


Наверх

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