Вниз
Скачать: CL | DM;

И снова картинки ...   Найти похожие ветки 

 
aleliko ©   (2005-05-23 13:22) [0]

Всем привет!
Я хочу поднять вопрос, который уже, наверняка, обсуждался в этом форуме - добавление картинок в базу данных.
Я поискал по ключевым словам, но не нашел ничего подходящего.
По найденному мной, я смог сваять только что-то типа:
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;

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


 
Zacho ©   (2005-05-23 13:30) [1]

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


В ДНК.

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

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


 
Johnmen ©   (2005-05-23 13:39) [2]

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


 
aleliko ©   (2005-05-23 14:11) [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"
Происхождение этой ошибки я вообще разгадать не могу
ДНК ...


 
msguns ©   (2005-05-23 14:17) [4]

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


 
aleliko ©   (2005-05-23 14:20) [5]

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



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.033 c
3-1116125866
Lex_!
2005-05-15 06:57
2005.06.29
Поиск по БД


11-1101251566
XProger
2004-11-24 02:12
2005.06.29
Прокрутка в Memo


8-1109409338
puky
2005-02-26 12:15
2005.06.29
Шаблон плугина для Фотошопа


3-1115995250
Lex_!
2005-05-13 18:40
2005.06.29
TThread и работа с базой


14-1117391999
Layner
2005-05-29 22:39
2005.06.29
Свой макроязык




   Наверх