Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка выполнения 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]

Ниче не понял. Где текст запроса ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо