![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка выполнения SQL запроса [D6, Access]
Lite © (2007-08-15 16:28:00)объясните пожалуйста почему при выполнении SQL запроса на ADO к базе данных Access "update таблица set поле1 ={fn UCase(поле1)}" для преобразования текста поля1 к верхнему регистру(слово -> СЛОВО), вылезает ошибка "Неверно
сформированный код GUID. в выражении запроса '{fn UCase(naim)}'". Как победить эту ошибку и перевсти данные в верхний регистр?
sniknik (2007-08-16 13:37:00) [1]> возвращает только запись "МАЯК БОЛЬШОЙ" хотя должен бы вернуть обе если бы был не чувствителен к регистру.
а ведь действительно так и возвращает... сорри, настолько привык при работе с Access, отвык от работы с dbf, что невольно ввел в заблуждение.
sniknik (2007-08-16 13:22:00) [2]> Подключение через ODBC
> нет не имеет, раз уж/если ты работаешь через jet
естественно у разных провайдеров и поведение разное.
теперь становиться непонятным работа с двумя разными провайдерами при том что один из них работает с обоими типами баз/таблиц.
подозреваю, что следующая порция инфы будет о том, что dbf в формате VFP, работать с которым через jet также как с access-ом совершенно невозможно.
Lite (2007-08-16 13:08:00) [3]To Sniknik
возможно я не все описал
Все выглядит следующим образом:
Подключение через ODBC
в таблице.dbf две записи по полю1
1. МАЯК БОЛЬШОЙ
2. маяк маленький
Запрос Select поле1 from таблица where поле1 like '%МАЯ%' возвращает только запись "МАЯК БОЛЬШОЙ" хотя должен бы вернуть обе если бы был не чувствителен к регистру.
sniknik (2007-08-15 17:32:00) [4]> а вот в этом случае регистр имеет значение
нет не имеет, раз уж/если ты работаешь через jet, что возможно т.к. "через ADO подключил базу таблица.dbf".
> ... не возвращает записей подходящих по значению ...
т.к. ошибка в 17 строке.
по какому критерию и кто решал что записи подходящие?
Lite (2007-08-15 17:27:00) [5]Спасибо всем!
Выражение set поле1 =UCase(поле1) сегодня работает, хотя раньше почему-то отказывалось.
по поводу регистра... как ни странно но при выборе записей из dbf таблицы где есть записи и в верхнем регистре и в нижнем условие Like набранное в верхнем регистре не возвращает записей подходящих по значению, но записанных в нижнем регистре.
stanislav (2007-08-15 16:59:00) [6]set поле1 =UCase(поле1)
так работает?
в Like учитывается регистр?
Lite (2007-08-15 16:56:00) [7]to MsGuns Текст запроса:
update таблица set поле1 ={fn UCase(поле1)}
to stanislav
фигурные скобки взяты по примеру который находится в файле справки jetsql40.chm
to sniknik
а смысл в том что через ADO подключил базу таблица.dbf и нужно выполнять отбор записей по условию "Where поле1 Like" используя SQL, а вот в этом случае регистр имеет значение
sniknik (2007-08-15 16:35:00) [8]> объясните пожалуйста почему
потому что синтаксисом у jet предусмотрено GUID в кавычках писать, и у тебя в них явно не он...
> и перевсти данные в верхний регистр?
а смысл? все операции со строками в access нечувствительны к регистру...
stanislav (2007-08-15 16:34:00) [9]зачем фигурные скобки? и fn?
MsGuns (2007-08-15 16:33:00) [10]Ниче не понял. Где текст запроса ?