Консультация № 66038
08.12.2006, 02:44
0.00 руб.
0 2 1
Здравствуйте!
Скажите пожалуйста как через ZQuery (Zeos ver 6.1.5) записать в BLOB поле болшой двоичной буфер.
Я пишу (приложение) но символьи #0, #10, #13 и др. вьизивают ошибки.



Приложение:
ZQuery.SQL.Text= ‘INSERT INTO tbl_name (Data) VALUES (‘+QuotedStr(‘1234‘#0#1#10#13‘abc‘)+‘);‘;

Обсуждение

давно
Мастер-Эксперт
425
4118
08.12.2006, 15:13
общий
это ответ
Здравствуйте, Bochvarov NikB!
Вам надо было текст ошибки в вопросе привести.
Если судить по тому что Вы написали, то движок БД просто не понимает, что Вы от него пытаетесь добиться вот этим:
<i>‘1234‘#0#1#10#13‘abc‘</i>
Обычно, если строка состоит из нескольких отдельных частей, то эти части между собой соединяют знаком "+", а у Вас получилось, что символы #0#1#10#13 к строке никоим образом не относятся.
Лучше всего Вам будет писать строку запроса отдельно, а вносить ее в SQL.Text отдельно, тогда Вы сразу будете видеть где у Вас ошибка. Вот для примера:
Const
ins = ‘INSERT INTO tbl_name (Data) VALUES (‘; {Это начало SQL оператора}
Var
q1: string; {Здесь будет собираться строка запроса из всевозможных переменных, констант и функций}
Begin
...
q1:=Ins+QUotedStr(‘1234‘+#0+#10+#13+‘abc‘)+‘)‘;
ZQuery.SQL.Text:=q1;
...
End;
Согласитесь, чем короче строчка команды, тем больше шансов увидеть неправильность, т.к. глаза не будут в ужасе по строке разбегаться. :)
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
08.12.2006, 15:31
общий
Уважаемьи Sir,Ето строка вполне удовлетворяет правила записи строк Делфи (‘1234‘#0#1#10#13‘abc‘).Сервер, через ZQuery получает стринг до первой #0:INSERT INTO tbl_name (Data) VALUES (‘1234‘и конечно не понимает ету строку (я вижу лог сервера) и поетому пишет обьичное сообщение синтатктической ошибки в MySQL.
Форма ответа