C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Ошибка в SQL запросе
Oper01
Отправлено: 09.12.2004, 21:43


Станционный диспетчер

Группа: Участник
Сообщений: 145



Подключаюсь к базе MS Access через ADO и делаю SQL запрос вот такой вот:
[CODE] SELECT * FROM Table1 WHERE Организация = 'название организации'[CODE]
И вот какой странный результат получается: если в названии организации нет символа ' (апостроф, или как его правильно называют), то всё работает великолепно. Но как только в названии фирмы встречается такой символ, например ООО 'Рога и копыта' то при выполнении запроса возникает ошибка: Ошибка синтаксиса. Пропущен оператор в выражении запроса. Почему на символ ' такая реакция ? Как с этим справится ? Буду благодарен за ответы.
AVC
Отправлено: 10.12.2004, 09:19


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
Почему на символ ' такая реакция ?

Вы же сами написали ответ (посмотрите текст своего запроса). Одинарная кавычка используется в языке SQL для задания строкового литерала. Бороться с этим можно по разному.

Доморощенные способы:
Не использовать этот символ в названии фирмы (заменить на ")
Сделать запрос параметрическим

Универсальный способ:
Уточнить по синтаксису языка как использовать этот символ в литерале — удвоение, задание кодом, задание через специальную последовательность и писать согласно синтаксису.
Oper01
Отправлено: 11.12.2004, 01:18


Станционный диспетчер

Группа: Участник
Сообщений: 145



Спасибо за ответ. Есть подозрение, что символ ' заменяется на некоторую последовательность, как вы и написали. Ещё раз спасибо за подсказки, буду искать, пробовать.
** Oper01
Отправлено: 12.12.2004, 19:28


Не зарегистрирован







Для баз данных MS Access в SQL запросе символ ' (апостроф) должен быть заменён на последовательность /''
Может быть есть ещё другие решения, но так тоже работает и можно выкрутиться.

Вернуться в Работа с базами данных в C++Builder