SQL запрос в парадокс без учета регистра

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

SQL запрос в парадокс без учета регистра

Сообщение kuhtiov » 16.06.2011 (Чт) 20:31

День добрый. Подскажите, как выполнить запрос типа
Код: Выделить всё
SQL = "SELECT * FROM Table where F = '" & SearchText.Text & "'" 
без учета регистра? Пробовал применить lower, не выходит :drunken:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: SQL запрос в парадокс без учета регистра

Сообщение Хакер » 16.06.2011 (Чт) 21:17

Причём тут VB6?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

mshak
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 29.01.2008 (Вт) 14:17

Re: SQL запрос в парадокс без учета регистра

Сообщение mshak » 17.06.2011 (Пт) 9:41

Видимо топикстартер пишет прогрмму на ВБ, а там запрос) ...
Если мне память не изменяет то MS Access и MS SQL не учитывают регистр. Какая СУБД?
и не рекомендовал бы делать сборные запросы, можешь легко получить SQL инъекцию. Лучше так (код из ASP страницы, но думаю в VB переделаешь при необходимости):
Код: Выделить всё
' oADO - ADODB.Connection
' RSt - ADODB.Recordset
...
   dim cmd: set cmd = Server.CreateObject("ADODB.Command")
   dim SQL
   SQL = "SELECT * FROM Table where F = ?"
   cmd.ActiveConnection = oADO
   cmd.CommandText = SQL
   cmd.Parameters.Append cmd.CreateParameter("F", adVarChar, adParamInput, Len(SearchText.Text)+1, SearchText.Text)
   RSt.CursorLocation = adUseClient
   RSt.Open cmd, , adOpenForwardOnly, adLockReadOnly, adCmdText

а еще вместо WHERE F = <expression> рассмотри возможность WHERE F LIKE <expression>

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Re: SQL запрос в парадокс без учета регистра

Сообщение kuhtiov » 17.06.2011 (Пт) 19:01

Верно, пишу на VB. СУБД Paradox

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: SQL запрос в парадокс без учета регистра

Сообщение Хакер » 17.06.2011 (Пт) 21:01

kuhtiov, а ты не задавал себе вопрос, зачем существует этот раздел.

kuhtiov писал(а):Верно, пишу на VB.

Если это обоснование того, почему топик здесь, а не там, привожу описание того раздела:
Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)


Тему переношу, тебе замечание.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SQL запрос в парадокс без учета регистра

Сообщение FireFenix » 17.06.2011 (Пт) 23:13

kuhtiov писал(а):Верно, пишу на VB. СУБД Paradox

Зачем ты используешь БД сомнительного происхождение с никакущей документацией?

Тут один офф сайт вызывает жуткое негодование, а об юзер-френдли :pukel: я вообще молчу...
Использовал бы лучше SQLite...

kuhtiov писал(а):Пробовал применить lower, не выходит :drunken:

Да ну? Брешешь!
Код: Выделить всё
SELECT * FROM table WHERE LOWER(name)=LOWER('" & TextBox.Text & "')


ещё на сайте этих извращенцев, нашёл и такую конструкцию
Код: Выделить всё
SELECT *
  FROM table
WHERE name IN (UPPER(name), LOWER(name))
Последний раз редактировалось FireFenix 18.06.2011 (Сб) 21:43, всего редактировалось 1 раз.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Re: SQL запрос в парадокс без учета регистра

Сообщение kuhtiov » 18.06.2011 (Сб) 21:33

Хакер писал(а):kuhtiov, а ты не задавал себе вопрос, зачем существует этот раздел.


Прошу прощения. Совсем забыл что такой раздел вообще существует

FireFenix писал(а):
kuhtiov писал(а):Верно, пишу на VB. СУБД Paradox

Зачем ты используешь БД сомнительного происхождение с никакущей документацией?


ПО идет в комплекте с регистратором. Там софт работает с парадокс. Сам не в восторге, но что делать...

FireFenix писал(а):
kuhtiov писал(а):Пробовал применить lower, не выходит :drunken:

Да ну? Брешешь!
Код: Выделить всё
SELECT * FROM table LOWER(name)=LOWER('" & TextBox.Text & "')


ещё на сайте этих извращенцев, нашёл и такую конструкцию
Код: Выделить всё
SELECT *
  FROM table
WHERE name IN (UPPER(name), LOWER(name))


Фиг там был! Это еще нужно доказать самому парадрксу. Я тоже так пробовал, результат меня не порадовал. Ругается на синтексис
Код: Выделить всё
SQL = "SELECT * FROM TRZ_VIPS LOWER(F)=LOWER('" & SearchText.Text & "')"


где TRZ_VIPS - таблицы, F- столбик, SearchText.Text-искомый текст
Видимо эта фича работает не во всех версиях или я на самом деле не верно запрос сформулировал?

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SQL запрос в парадокс без учета регистра

Сообщение FireFenix » 18.06.2011 (Сб) 21:44

WHERE забыл, я очепятался в примере
Код: Выделить всё
SELECT * FROM table WHERE LOWER(name)=LOWER('" & TextBox.Text & "')
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron