Russian Qt Forum
Сентябрь 30, 2024, 20:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как экранировать одинарную кавычку для SQLite  (Прочитано 26533 раз)
andrew.k
Гость
« Ответ #15 : Сентябрь 29, 2011, 13:42 »

Нэт, так не пойдет мне нужно, что бы базе хранился именно исходный текст c одинарными кавычками: Noch'. Ulica. Fonar'. 
'' != " присмотрись сам Подмигивающий Там два апострофа. При выполнении запроса они нужны, а в базу лягут уже по одному

Потому что нужно было просто написать "экранируется второй кавычкой".
Но это не нужно. Ты ж не будешь везде добавлять вторую кавычку.
Нужно просто использовать bindValue
Записан
Nimbus
Гость
« Ответ #16 : Сентябрь 30, 2011, 04:57 »

Нужно просто использовать bindValue
Логично. Немного оффтопа:
Вообще, я считаю, что все данные в запрос надо передавать через параметры. Ибо такие крупные СУБД как Oracle и PostgreSQL (не знаю насчёт остальных) выполняют их быстрее, потому что не приходится каждый раз выполнять парсинг и строить план выполнения запроса, заодно это безопасно
Записан
MoPDoBoPoT
Гость
« Ответ #17 : Сентябрь 30, 2011, 22:35 »

выполняют их быстрее, потому что не приходится каждый раз выполнять парсинг и строить план выполнения запроса, заодно это безопасно
Это если запрос многократно используется (:
Записан
fuCtor
Гость
« Ответ #18 : Октябрь 02, 2011, 07:30 »

Если он используется лишь один раз, то как минимум не будет выигрыша по производительности, но зато меньше проблем со всякими символами, экранированием и тп. Да и логику при необходимости писать легче.
Записан
Rem Norton
Гость
« Ответ #19 : Октябрь 02, 2011, 17:00 »

Нужно просто использовать bindValue
Логично. Немного оффтопа:
Вообще, я считаю, что все данные в запрос надо передавать через параметры. Ибо такие крупные СУБД как Oracle и PostgreSQL (не знаю насчёт остальных) выполняют их быстрее, потому что не приходится каждый раз выполнять парсинг и строить план выполнения запроса, заодно это безопасно
ЛОЛШТО??? Спасибо, поржали всем офисом!
Записан
asvil
Гость
« Ответ #20 : Октябрь 02, 2011, 17:45 »

Цитировать
ЛОЛШТО??? Спасибо, поржали всем офисом!
Умник детектед.

словосочетние
Цитировать
каждый раз
уже предполагает использование более одного раза.
Записан
Nimbus
Гость
« Ответ #21 : Октябрь 02, 2011, 18:10 »

ЛОЛШТО??? Спасибо, поржали всем офисом!
About?
Записан
Rem Norton
Гость
« Ответ #22 : Октябрь 02, 2011, 19:50 »

ЛОЛШТО??? Спасибо, поржали всем офисом!
About?
Откуда вообще информация, что параметризованные запросы Postgre выполняет быстрее??? Что-то в исходниках Postgre ни я, ни мои коллеги ничего такого не нарыли... НО поржали от души!
Записан
asvil
Гость
« Ответ #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
Гость
« Ответ #24 : Октябрь 02, 2011, 20:21 »

Кодокопатели.

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
Гость
« Ответ #25 : Октябрь 03, 2011, 04:13 »

При единоразовом выполнении НИКАКОГО ПРИРОСТА СКОРОСТИ НЕ БУДЕТ. И так, для информации: все, уважающие себя СУБД имеют кэш запросов, в котором даже не параметризованный запрос хранится в виде execution плана.
Я это и имел ввиду, говоря "каждый раз", как уже пояснили выше Подмигивающий
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 21.