Russian Qt Forum
Ноябрь 24, 2024, 02:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
Как экранировать одинарную кавычку для SQLite
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как экранировать одинарную кавычку для SQLite (Прочитано 26718 раз)
andrew.k
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #15 :
Сентябрь 29, 2011, 13:42 »
Цитата: JC от Сентябрь 29, 2011, 13:29
Цитата: wolfut от Сентябрь 29, 2011, 13:25
Нэт, так не пойдет мне нужно, что бы базе хранился именно исходный текст c одинарными кавычками: Noch'. Ulica. Fonar'.
'' != " присмотрись сам
Там два апострофа. При выполнении запроса они нужны, а в базу лягут уже по одному
Потому что нужно было просто написать "экранируется второй кавычкой".
Но это не нужно. Ты ж не будешь везде добавлять вторую кавычку.
Нужно просто использовать bindValue
Записан
Nimbus
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #16 :
Сентябрь 30, 2011, 04:57 »
Цитата: andrew.k от Сентябрь 29, 2011, 13:42
Нужно просто использовать bindValue
Логично. Немного оффтопа:
Вообще, я считаю, что все данные в запрос надо передавать через параметры. Ибо такие крупные СУБД как Oracle и PostgreSQL (не знаю насчёт остальных) выполняют их быстрее, потому что не приходится каждый раз выполнять парсинг и строить план выполнения запроса, заодно это безопасно
Записан
MoPDoBoPoT
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #17 :
Сентябрь 30, 2011, 22:35 »
Цитата: JC от Сентябрь 30, 2011, 04:57
выполняют их быстрее, потому что не приходится каждый раз выполнять парсинг и строить план выполнения запроса, заодно это безопасно
Это если запрос многократно используется (:
Записан
fuCtor
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #18 :
Октябрь 02, 2011, 07:30 »
Если он используется лишь один раз, то как минимум не будет выигрыша по производительности, но зато меньше проблем со всякими символами, экранированием и тп. Да и логику при необходимости писать легче.
Записан
Rem Norton
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #19 :
Октябрь 02, 2011, 17:00 »
Цитата: JC от Сентябрь 30, 2011, 04:57
Цитата: andrew.k от Сентябрь 29, 2011, 13:42
Нужно просто использовать bindValue
Логично. Немного оффтопа:
Вообще, я считаю, что все данные в запрос надо передавать через параметры. Ибо такие крупные СУБД как Oracle и PostgreSQL (не знаю насчёт остальных) выполняют их быстрее, потому что не приходится каждый раз выполнять парсинг и строить план выполнения запроса, заодно это безопасно
ЛОЛШТО??? Спасибо, поржали всем офисом!
Записан
asvil
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #20 :
Октябрь 02, 2011, 17:45 »
Цитировать
ЛОЛШТО??? Спасибо, поржали всем офисом!
Умник детектед.
словосочетние
Цитировать
каждый раз
уже предполагает использование более одного раза.
Записан
Nimbus
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #21 :
Октябрь 02, 2011, 18:10 »
Цитата: Rem Norton от Октябрь 02, 2011, 17:00
ЛОЛШТО??? Спасибо, поржали всем офисом!
About?
Записан
Rem Norton
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #22 :
Октябрь 02, 2011, 19:50 »
Цитата: JC от Октябрь 02, 2011, 18:10
Цитата: Rem Norton от Октябрь 02, 2011, 17:00
ЛОЛШТО??? Спасибо, поржали всем офисом!
About?
Откуда вообще информация, что параметризованные запросы Postgre выполняет быстрее??? Что-то в исходниках Postgre ни я, ни мои коллеги ничего такого не нарыли... НО поржали от души!
Записан
asvil
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #23 :
Октябрь 02, 2011, 19:54 »
Кодокопатели.
http://www.postgresql.org/docs/8.1/static/libpq-exec.html
Цитировать
PQprepare
............
PQprepare creates a prepared statement for later execution with PQexecPrepared. This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed.
............
Записан
Rem Norton
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #24 :
Октябрь 02, 2011, 20:21 »
Цитата: Филоненко Михаил от Октябрь 02, 2011, 19:54
Кодокопатели.
http://www.postgresql.org/docs/8.1/static/libpq-exec.html
Цитировать
PQprepare
............
PQprepare creates a prepared statement for later execution with PQexecPrepared. This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed.
............
Для не знающих ангельского и презирающих on-line переводчики: ключевой момент фразы " ... commands that will be used repeatedly..." в переводе означает "команды, которые будут использоваться неоднократно". При единоразовом выполнении НИКАКОГО ПРИРОСТА СКОРОСТИ НЕ БУДЕТ. И так, для информации: все, уважающие себя СУБД имеют кэш запросов, в котором даже не параметризованный запрос хранится в виде execution плана. И, если запрос вызвать более одного раза, но с разными параметрами, он (какая неожиданность) выполнится быстрее, чем в первый раз.
И, да: коды рулят!
Записан
Nimbus
Гость
Re: Как экранировать одинарную кавычку для SQLite
«
Ответ #25 :
Октябрь 03, 2011, 04:13 »
Цитата: Rem Norton от Октябрь 02, 2011, 20:21
При единоразовом выполнении НИКАКОГО ПРИРОСТА СКОРОСТИ НЕ БУДЕТ. И так, для информации: все, уважающие себя СУБД имеют кэш запросов, в котором даже не параметризованный запрос хранится в виде execution плана.
Я это и имел ввиду, говоря "каждый раз", как уже пояснили выше
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...