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 запросе символ ' (апостроф) должен быть заменён на последовательность /''
Может быть есть ещё другие решения, но так тоже работает и можно выкрутиться. |
|