Кавычки в FireBird

Модератор: Модераторы

Ответить
Аватара пользователя
EmeraldMan
постоялец
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород
Контактная информация:

Кавычки в FireBird

Сообщение EmeraldMan »

Есть такая проблемка - формирую запрос в БД FireBird:

Код: Выделить всё

INSERT INTO table1 VALUES (7, 'Вася', 'Пупкин'); //здесь ID (integer), fname (varchart), lname (varchart)

В программе приходится писать:

Код: Выделить всё

SQLQuery1.SQL.Add('INSERT INTO table1 VALUES (7, '+#39+'Вася'+#39+' ,'+#39+'Пупкин'+#39+');');

- для того чтобы поставить одинарные кавычки. Можно ли эту ситуацию как-нибудь обойти? а то уж очень не удобно.
В Access я в запросте просто ставил ", но здесь при двойных кавычках возникает ошибка.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

EmeraldMan писал(а):Можно ли эту ситуацию как-нибудь обойти?

Можно. В тексте запроса воспользуйтесь функцией QuotedStr(), параметром которой идут текстовые данные, которые должны быть заковычены.
А вообще-то у меня нормально работают двойные кавычки.
Аватара пользователя
EmeraldMan
постоялец
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород
Контактная информация:

Сообщение EmeraldMan »

Vadim писал(а):В тексте запроса воспользуйтесь функцией QuotedStr()

Спасибо! Так гораздо удобнее! :)
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

EmeraldMan
во первых надо пользоваться параметрами, чтобы не было больно потом

во вторых кавычки двойные работают на ура. и

Код: Выделить всё

SQLQuery1.SQL.Add('INSERT INTO table1 VALUES (7, ''ася'' ,''Пупкин'');');

должно отработать нормально. если не работате то ты что-то скрываешь.
Аватара пользователя
EmeraldMan
постоялец
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород
Контактная информация:

Сообщение EmeraldMan »

Attid
Благодарю код помог!
Я ничего не скрывал, просто ставил двойные кавычки не как две одинарных, а одним символом " двойной кавычки.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Странно, мне, когда в свое время перепиливал проект с BDE на Firebird, пришлось во всех запросах менять одинарные кавычки на двойные, иначе наотрез отказывалось работать...
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Sergei I. Gorelkin боюсь ты что-то путаешь, двойные кавычки могут использоваться только в альясах полей. а вот две одинарные обязательно надо.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Посмотрел повнимательнее, благо в svn все ходы записаны. Действительно, прогнал малость... Вокруг названий таблиц пришлось двойные кавычки добавлять, вокруг литералов - менять двойные на одинарные.
Ответить