Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];




Вниз

Как работать с BLOB при использовании UPDATE ? 


Malder   (2002-03-05 19:22) [0]

Как передавать поле BLOB при использовании UPDATE ?



Malder   (2002-03-05 19:58) [1]

Проблема в том, что как я понял, в UPDATE нельзя применять параметры. Типа SET Pole=:p1



evgeg   (2002-03-05 20:57) [2]

Параметры не могут быть типа blob в Дельфи 1-2. В Дельфи 3 уже можно. У тебя какая? Или ты не BDE используешь?



Malder   (2002-03-06 15:38) [3]

У меня пятая Delphi (это, кстати, в заголовке топика отражено). Я использую BDE (то есть Tquery и Tdatabase).

Проблема поподробнее вот в чем.
Если написать что-то вроде:

query1.SQL.add(UPDATE Table SET Pole=:p1 WHERE Pole2="TEST");
query1.params.FieldByName("p1")asBlob:=Memo1.lines.text;
query1.ExecSQL;


То он говорит, что ему что-то не нравится. Точно не помню, типа не поддерживаются параметры для данного оператора (Update).

А как тогда передавать Blob поля для обновления ?
вот в чем вопрос...



Reindeer Moss Eater   (2002-03-06 15:58) [4]

Assign, LoadFromFile, ....



Malder   (2002-03-06 16:07) [5]

Reindeer Moss Eater, не понял. Можно поподробнее ?
Где писать Assign ?
query1.params.FieldByName("p1").assign(...) ?
не пойдет...



Lusha   (2002-03-06 17:00) [6]

>Malder
1. У TParams нет метода FieldByName
2. А почему бы Вам не написать так:
query1.params.paramByName("p1").AsString:=Memo1.lines.text;

Удачи



Reindeer Moss Eater   (2002-03-06 18:21) [7]


Query1.ParamByName("p1").Assign(Memo1.Lines);
Query1.ParamByName("p1").LoadFromFile("C:\Test.txt");
Query1.ParamByName("p1").LoadFromStream(SomeStream,ftMemo);



Malder   (2002-03-06 22:41) [8]

Я просто в шоке. НАРОД.
Выполняю такой код:


SQL.clear;
params.Clear ;
SQL.add("UPDATE Table SET Fax="222" WHERE Telefon="111"");
execSQL;


ЧТО ЗДЕСЬ МОЖЕТ БЫТЬ НЕПРАВИЛЬНОГО ?!
Видно, из-за этого у меня и Blob не работает...
Сначала у меня был сложный UPDATE, я его постепенно упрощал и вот доупращался... КУДА ПРОЩЕ ? Я вообще ничего не понимаю.

Причем, если запись, где телефон равен 111 не существует, то ошибок нет, а если есть такая запись, то:

... raised Exception class EDBEngineError with message "General SQL error. feature not supported
BLOB and array data types not supported for compare operation". Process stopped. Use step or Run to continue."


ЧТО ЗА ОШИБКА ? ОТКУДА ? ПОЧЕМУ ? Я необрываю код. Он такой и есть. Пользователю под которым работаю разрешен UPDATE таблицы....
ой блииин.....у кого ХОТЬ какие идеи есть ?



Lusha   (2002-03-07 09:17) [9]

А какой тип у поля Telefon?



Malder   (2002-03-07 10:06) [10]

Что у Telefon, что у Fax поле типа Char(n)
блин... вот надо ж так...



Lusha   (2002-03-07 10:10) [11]

А какова величина n?



Malder   (2002-03-07 23:25) [12]

n=16 и у телефона и у факса



Lusha   (2002-03-08 10:20) [13]

А этот запос средствами IB выполняется?



Malder   (2002-03-08 13:13) [14]

Lusha, что-то я не очень понял. Если сервер Interbase (а у меня Interbase), то естесственно запрос выполняется интербэйсом.

Только вот я слышал, Query как то может преобразовывать SQL комманды перез отправкой на сервер, но тут я ничего не знаю...



Lusha   (2002-03-08 16:04) [15]

Я имел в виду не чем он (запрос) выполняется, а выполняется ли он в принципе...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.016 c
3-3               andyfirst             2002-03-05 14:44  2002.04.01  
Ошибка в запросе


3-48              Gurban                2002-03-07 13:17  2002.04.01  
Поле Date в Paradox


1-230             alexts                2002-03-20 15:21  2002.04.01  
Проблемы с MDI и DLL


1-102             Толик                 2002-03-17 22:15  2002.04.01  
Глюки TCHART


3-71              Alexsys               2002-03-08 06:30  2002.04.01  
Как загрузить отчет из текстушки в Qreport?