|
|
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
Господа, никто не подскажет url в msdn или еще где, с описанием всевозможных спецсимволов, когда используется LIKE в WHERE. Раньше для коннекта из проги на VB6 к бд Access использовал DAO, там все было понятно, полное соответствие оператору Like в VB. Сейчас вместо DAO использую ADO. Заранее спасибо. Иван Абрамов, программист, CSBI. http://adanalysis.narod.ru - моя программа для выбора авто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:25 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
Синтаксис SQL ANSI 92 % = * ? = _ (если не ошибаюсь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:26 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
Немного не так. DAO ADO * % ? _ а вот дальше? что вместо #, ! ^ - как в MS SQL Server - не работает. Вообщем, нужен url к полному описанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:47 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
из справки Сравнение языка запросов Microsoft Jet SQL и ANSI SQL Ядро базы данных Microsoft Jet SQL в основном совместимо с ANSI-89 Level 1. Однако некоторые возможности языка запросов ANSI SQL не реализованы в Microsoft Jet SQL. В выпуске Microsoft Jet версии 4.X для поставщика Microsoft OLE DB для Jet реализовано больше синтаксиса ANSI-92 SQL. Аналогично, язык запросов Microsoft Jet SQL содержит зарезервированные слова и возможности, не поддерживаемые языком ANSI SQL. Основные различия Языки Microsoft Jet SQL и ANSI SQL имеют разные зарезервированные слова и типы данных. Дополнительные сведения см. в разделах Зарезервированные слова языка SQL ядра базы данных Microsoft Jet и Эквивалентные типы данных ANSI SQL. При использовании поставщика Microsoft OLE DB для Jet с версией Jet 4.X существует несколько дополнительных зарезервированных слов. Другие правила применяются для конструкции Between...And, которая имеет следующий синтаксис. выражение1 [NOT] Between значение1 And значение2 В языке Microsoft Jet SQL значение1 может быть больше, чем значение2; в языке ANSI SQL значение1 должно быть меньше значения2 или равно ему. В языке Microsoft Jet SQL при использовании оператора Like поддерживаются как подстановочные знаки языка ANSI SQL, так и подстановочные знаки, относящиеся к Microsoft Jet. Невозможно совместно использовать подстановочные знаки ANSI и Microsoft Jet. Допускается использовать только один набор знаков, их нельзя смешивать. Использование знаков языка ANSI SQL разрешено только с ядром Jet версии 4.X и с поставщиком Microsoft OLE DB для Jet. При попытке использования подстановочных знаков языка ANSI SQL с приложением Microsoft Access или объектами DAO они будут трактоваться как литералы. Обратное верно при использовании поставщика Microsoft OLE DB для Jet и ядра Jet версии 4.X. Символ соответствия Microsoft Jet SQL ANSI SQL Любой текстовый символ ? знак подчеркивания (_) Любое количество символов * % В языке Microsoft Jet SQL меньше ограничений. Например, разрешается производить группировку и сортировку по выражениям. Язык Microsoft Jet SQL поддерживает более производительные выражения. Расширенные возможности языка Microsoft Jet SQL Язык Microsoft Jet SQL обладает следующими расшиpенными возможностями. Инструкция TRANSFORM обеспечивает поддержку перекрестных запросов. Существуют дополнительные статистические функции SQL, такие как StDev и VarP. Для определения параметров запроса используется описание PARAMETERS. Возможности языка ANSI SQL, не поддерживаемые в языке Microsoft Jet SQL Язык Microsoft Jet SQL не поддерживает следующие возможности языка ANSI SQL. Ссылки в статистической функции DISTINCT. Например, в языке Microsoft Jet SQL невозможно использовать конструкцию SUM(DISTINCT имя_столбца). Использование предложения LIMIT TO nn ROWS для ограничения числа строк, возвращаемых запросом. Для подобного ограничения можно использовать только предложение WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:49 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
То есть все так, сорри, Темный, и спасибо. Но нужна полная картина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:51 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
описание символов и примеров LIKE бери из справки к MS SQL серверу [ ] Any single character within the specified range ([a-f]) or set ([abcdef]). (WHERE au_lname LIKE '[C-P]arsen' finds author last names ending with arsen and beginning with any single character between C and P, for example Carsen, Larsen, Karsen, and so on.) [^] Any single character not within the specified range ([^a-f]) or set ([^abcdef]). (WHERE au_lname LIKE 'de[^l]%' all author last names beginning with de and where the following letter is not l.) Код: plaintext 1. 2. 3. 4. 5. 6. 7. и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:55 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
Спасибо, Хам, но, опять же в твоей цитате упоминается лишь *(%) и ?(_). А как на счет #, !, \, [] ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 16:58 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
описание символов и примеров LIKE бери из справки к MS SQL серверу Да, я так и сделал. Но, к удивлению обнаружил, что маски с ^ не работают, а с ! работают. Каша какая-то получается, вот и спросил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 17:03 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
В БОЛ есть mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\vdtsql.chm::/dvconusingwildcardcharacters.htm]статья, которая называеться Wildcard Characters - там про ! ничего не сказано. Покажи свои маски ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 17:10 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
В БОЛ есть mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\vdtsql.chm::/dvconusingwildcardcharacters.htm]статья, которая называеться Wildcard Characters - там про ! ничего не сказано. Совершенно согласен. ! - это один из спецсимволов VB Like и DAO LIKE Вот кусок sql - строки WHERE Phone1 LIKE '([0-9][0-9][0-9])[!2]%' А если написать так WHERE Phone1 LIKE '([0-9][0-9][0-9])[^2]%' то результат выдается неверный. Что ж получается, все спецсимволы сходны с MSSQL, кроме ! Что за казус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 17:20 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
и что тебе выдает WHERE Phone1 LIKE '([0-9][0-9][0-9])[^2]%' по идеи должен выдать первые три символа - цифры, 4-ый - не двойка З.Ы. А что будет выдавать WHERE Phone1 LIKE '([0-9][0-9][0-9])[134567890]%' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 17:38 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
и что тебе выдает WHERE Phone1 LIKE '([0-9][0-9][0-9])[^2]%' по идеи должен выдать первые три символа - цифры, 4-ый - не двойка Совершенно согласен. Но выдадтся записи где первые три цифры (которые заключены в круглые скобки) а потом ДВОЙКИ (а не не двойки), далее не важно. А вот WHERE Phone1 LIKE '([0-9][0-9][0-9])[!2]%' работает полностью корректно. Т.е. спецсимвол ^ работает неправильно, а ! правильно. В то время как все остальные спецсимволы взяты из синтаксиса MSSQL. Казус! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 17:46 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
проверил на MS SQL WHERE (вв LIKE '[0-9][0-9][0-9][^2]%') рабоает правильно и возращает все записи за исключением 2 Давай разбираться откуда и кчему запускаешь запрос и почему именно ANSI SQL92 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 17:52 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
А что будет выдавать WHERE Phone1 LIKE '([0-9][0-9][0-9])[134567890]%' Выдает все правильно, т.е. 6-ой символ не двойка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 18:01 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
ну а дальше объясни: почему именно АНСИ 92. Откуда оно взялось при работе VB6 с акесом (версия бд)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 18:02 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
Из проги на VB6 при помощи ADO 2.5 идет запрос к бд формата MS Access 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 18:05 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
ну а дальше объясни: почему именно АНСИ 92. Откуда оно взялось при работе VB6 с акесом (версия бд)? Потому что используется ADO, а не DAO. Спецсимволы * и ? и # не работают просто наглядно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 18:07 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
проверил на MS SQL WHERE (вв LIKE '[0-9][0-9][0-9][^2]%') рабоает правильно и возращает все записи за исключением 2 На MS SQL - то наверняка все правильно будет работать, а ты попробуй посредством ADO к бд Access2000. Драйвер (провайдер) сов. другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 18:20 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
>На MS SQL - то наверняка все правильно будет работать, а ты попробуй посредством ADO к бд Access2000. Драйвер (провайдер) сов. другой. Для АДО (при работе с mdb) надо применять % и _. Для отрицания ! (оператор сравнения такой же как < >) ^ - этот знак для работы с mdb (формат Акес2002+ANSI SQL 92) и MS SQL. Хотя действительно можно запутаться и в справке по этому поводу - тишина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 09:15 |
|
||
|
Описание спецсимволов для LIKE в ADO ?
|
|||
|---|---|---|---|
|
#18+
А как конвертировать числовое поле в текстовое, чтобы использовать с LIKE? В DAO я бы написал так WHERE CSTR(NumericField1) LIKE '*51*' А в ADO (при коннекте к бд MSAccess2000) как? Что-то типа WHERE ...NumericField1... LIKE '%51%' Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 12:27 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32374752&tid=1677225]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 333ms |

| 0 / 0 |
