![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как работать с BLOB при использовании UPDATE ? [D5, IB6.x]
Malder © (2002-03-05 19:22:00)Как передавать поле BLOB при использовании UPDATE ?
Lusha (2002-03-08 16:04:00) [1]Я имел в виду не чем он (запрос) выполняется, а выполняется ли он в принципе...
Malder (2002-03-08 13:13:00) [2]Lusha, что-то я не очень понял. Если сервер Interbase (а у меня Interbase), то естесственно запрос выполняется интербэйсом.
Только вот я слышал, Query как то может преобразовывать SQL комманды перез отправкой на сервер, но тут я ничего не знаю...
Lusha (2002-03-08 10:20:00) [3]А этот запос средствами IB выполняется?
Malder (2002-03-07 23:25:00) [4]n=16 и у телефона и у факса
Lusha (2002-03-07 10:10:00) [5]А какова величина n?
Malder (2002-03-07 10:06:00) [6]Что у Telefon, что у Fax поле типа Char(n)
блин... вот надо ж так...
Lusha (2002-03-07 09:17:00) [7]А какой тип у поля Telefon?
Malder (2002-03-06 22:41:00) [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 таблицы....
ой блииин.....у кого ХОТЬ какие идеи есть ?
Reindeer Moss Eater (2002-03-06 18:21:00) [9]
Query1.ParamByName("p1").Assign(Memo1.Lines);
Query1.ParamByName("p1").LoadFromFile("C:\Test.txt");
Query1.ParamByName("p1").LoadFromStream(SomeStream,ftMemo);
Lusha (2002-03-06 17:00:00) [10]>Malder
1. У TParams нет метода FieldByName
2. А почему бы Вам не написать так:
query1.params.paramByName("p1").AsString:=Memo1.lines.text;
Удачи
Malder (2002-03-06 16:07:00) [11]Reindeer Moss Eater, не понял. Можно поподробнее ?
Где писать Assign ?
query1.params.FieldByName("p1").assign(...)?
не пойдет...
Reindeer Moss Eater (2002-03-06 15:58:00) [12]Assign, LoadFromFile, ....
Malder (2002-03-06 15:38:00) [13]У меня пятая 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 поля для обновления ?
вот в чем вопрос...
evgeg (2002-03-05 20:57:00) [14]Параметры не могут быть типа blob в Дельфи 1-2. В Дельфи 3 уже можно. У тебя какая? Или ты не BDE используешь?
Malder (2002-03-05 19:58:00) [15]Проблема в том, что как я понял, в UPDATE нельзя применять параметры. Типа SET Pole=:p1