![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранимая процедура - запрос - BLOB - поле [D6, IBExpert]
TATIANA © (2004-05-05 09:52:00)Здравствуйте господа мастера !
База создана в IBExpert , использую компонент - IBQuery , IBStoredProc , Image (показываю на форме) . Работаю с базой через хранимые процедуры , запрос сделанный с помощью IBQuery1 не может изменяться .
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
B1STR := TStringStream.Create('');
Image1.Picture.Graphic.SaveToStream(B1STR);
IBQuery1PLAN_KV.LoadFromStream(B1STR);
B1STR.Free;
.....
IBStoredProc1.ParambyName('plan_kv').AsBlob := IBQuery1['PLAN_KV'];
IBStoredProc1.Prepare;
IBStoredProc1.ExecProc;
IBStoredProc1.UnPrepare
При записи из потока в поле -
IBQuery1PLAN_KV.LoadFromStream(B1STR);
дает сообщение об ошибке : "Not edit mode" .
Поле записывается в базу , но это сообщение очень раздражает .
Вопрос такой :
Как записать передачу BLOB-поля в хранимую процедуру минуя запись - IBQuery1PLAN_KV.LoadFromStream(B1STR); ?
Всем спасибо .
Поздравляю всех с прошедшими и наступающими праздниками .
Johnmen (2004-05-07 10:13:00) [1]http://ixbt.wallst.ru/ib/i00001.html
и на ibase.ru есть много материала
TATIANA (2004-05-07 09:56:00) [2]Господа , здравствуйте !
Возвращаюсь к нашему любимому вопросу .
Заменила IBQuery на IBDataSet1 и что-то неправильно в этой записи , а что не знаю , пожалуйста подскажите :
IBDataSet1.ModifySQL.Clear;
IBDataSet1.ModifySQL.Add('update KVARTIRA set PLAN_KV = :PLAN_KV ');
IBDataSet1.ModifySQL.Add('where KOD_KVAR = :OLD_KOD_KVAR');
IBDataSet1.Params[0].LoadFromStream(b1str);
IBDataSet1.Params[1].AsInteger := IBDataSet1['kod_kvar'];
IBDataSet1.ExecSQL;
На строке -
IBDataSet1.Params[0].LoadFromStream(b1str);
дает ошибку - 'XSQLDA index out of range' .
Спасибо всем .
TATIANA (2004-05-05 16:22:00) [3]IBQuery1PLAN_KV.LoadFromStream(B1STR);
Потому и задала вопрос , что не знаю как правильно , а на этой строке дает сообщение .
Johnmen (2004-05-05 15:46:00) [4]>TATIANA
>IBQuery1PLAN_KV.LoadFromStream(B1STR);
>Я работаю с данными с помощью хранимых процедур (IBStoredProc) ,
Здесь явное противоречие...
Соловьев (2004-05-05 15:38:00) [5]
> TATIANA (05.05.04 15:34) [5]
А где сказано что с ХП нельзя работать через запрос? наоборот рекомендуют :)
TATIANA (2004-05-05 15:34:00) [6]Все это хорошо . UpdateObjct требует наличия IBUpdateSQL , а в нем есть 3 строки :
- ввод ;
- удаление ;
- изменение ;
Я работаю с данными с помощью хранимых процедур (IBStoredProc) ,
мне придется делать лишние действия .
Соловьев (2004-05-05 12:31:00) [7]
> TATIANA (05.05.04 12:08) [2]
IBDataSet - самое оно
Johnmen (2004-05-05 12:21:00) [8]Работают.
UpdateObject+F1
TATIANA (2004-05-05 12:08:00) [9]Проблема в том , что с IBQuery1 методы Edit и Post не работают .
Курдль (2004-05-05 10:02:00) [10]Может так:
IBQuery1.Edit;
IBQuery1PLAN_KV.LoadFromStream(B1STR);
IBQuery1.Post;