|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.08.2012, 17:36 | #1 | |
Форумчанин
Регистрация: 30.08.2010
Сообщений: 153
|
Запись в FDB (FireBird) строк с одинарной кавычкой
Доброго,
Столкнулся с такой проблемой. Есть программка, которая берет информацию из DBF и закидывает в FDB (FireBird). При чтении из таблицы DBF попадаются строки, содеращие символ ' (одинарная ковычка). Из-за чего при записи в FDB (FireBird) возникает ошибка: Цитата:
|
|
13.08.2012, 17:45 | #2 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
заменить её на " если не принципиально.
или поиграться с ' в запросе.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
13.08.2012, 19:37 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А зачем на двойную кавычку? Спаренные одинарные в тексте запроса не в моде?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
14.08.2012, 06:20 | #4 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Вопрос в другом (у меня лично): а нафига в базе данных вообще применять такие символы заведомо зная, что может возникнуть проблема с их обработкой? Я вообще не сторонник хранения в базе всяких кавычек и т.п. Если что-то надо обрамить кавычками пользователю, то лучше это делать при показе записи из базы данных.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
14.08.2012, 08:41 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
База данных - это отражение РЕАЛЬНОЙ ситуации. И если в какой-то предметной области, например, нужно сохранять названия предприятий, то они должны быть именно в том формате, в каком они записываются в "реальной" жизни: ОАО "Газпром" (именно с двойными кавычками). Если нужно сохранять координаты объекта, то вполне может возникнуть запись вида координаты 51°51'3845" . И их тоже надо хранить именно так и никак не иначе. Да и вообще, в идеале, программа должна подстраиваться под нужны пользователя, а не пользователь - под нужды программиста. А уж как данную информацию кодировать и как хранить/обрабатывать/отображать - это уже полностью в распоряжении программиста. p.s. а вообще, обсуждение наше "про пустой мешок", ибо выше Аватар чуть выше рассказал, как данную проблему решить... |
|
14.08.2012, 09:12 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А вот я бы в этом случае как раз параметризировал запрос-вставку.
I'm learning to live...
|
14.08.2012, 09:37 | #7 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
Вот допустим есть имя Д'Артаньян.
в Ibexperte к своему стыду я не смог составить запрос вставки insert into table values ('Д'Артаньян') ИМХО либо замена либо параметрами... последние я бы ещё проверил.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
14.08.2012, 09:57 | #8 | ||
Форумчанин
Регистрация: 30.08.2010
Сообщений: 153
|
Цитата:
А это как? Цитата:
Единственная трезвая мысль, забежавшая в голову, перебирать записи на наличие одинарной ковычки. Но это скажется на скорости. |
||
14.08.2012, 10:04 | #9 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
insert into table values ('Д''Артаньян')
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
14.08.2012, 10:20 | #10 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
ага так работает insert into table values ('Д''Артаньян')
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не удаляется запись. Firebird + Interbase | artemavd | Общие вопросы Delphi | 2 | 08.05.2011 14:30 |
Firebird - fdb файл увеличивается при записи полей, но если базу очищаешь, размер остается таким же | RuVarez | БД в Delphi | 1 | 23.09.2010 18:09 |
Запись даты в FireBird | Lokos | БД в Delphi | 11 | 23.06.2010 07:53 |
запись пустого значения в блоб поле в FireBird | Lokos | БД в Delphi | 0 | 23.06.2010 07:01 |