![]() |
![]() |
Grigoriy 14.04.2004 - 12:03 |
Никак не могу сделать нормальный запрос с выбором ВСЕХ записей, где поле по имени "DELETE" имеет значение FALSE и только этих полей! Я уже извращался с различным написанием 'SELECT * INTO "MdocM_Lite.dbf" FROM "mdocm.dbf" Md Where ("Date" between :d1 and :d2) AND (VID=''2s'') AND (TYPE=''9'') AND ("DELETE"=FALSE)' Где писал и "DELETE"=FALSE и "DELETE"<>True и "DELETE"<>0 и даже сделал так "DELETE"=:L где ADOQuery1.Parameters.ParamByName('L1').Value:=FALSE; Оказалось - либо глотает часть записей, которые с FALSE либо выдает пустую таблицу, либо пропускает и появляются записи и с TRUE доступ через АДО к dbf, Delphi7, WinXP |
Greh 1 - 14.04.2004 - 15:33 | Delete - зарезервированное слово |
Grigoriy 2 - 14.04.2004 - 15:37 | Я в курсе. если создатели БЭСТ это знали, что что же делать? |
Oleg S. 3 - 14.04.2004 - 17:10 | Переименовывать поле... У меня вот было поле PASSWORD. Переименовал. И приложение, работающее с таблицей, перелопатил и перекомпилил... Впредь не даю полям зарезервированные имена. |
Grigoriy 4 - 15.04.2004 - 09:15 | А проблемы были именно из-за имени поля?(сорри за тавтологию) |
NTFS 5 - 15.04.2004 - 11:25 |
При отборе по булевскому типу можно просто писать: WHERE Поле WHERE NOT(Поле) (Для ADO - точно) |
Grigoriy 6 - 15.04.2004 - 11:32 |
NTFS, огромное спасибо. Много способов было предложено, но ни один не сработал. Указанный Вами способ работает - все небходимые записи и только они я выбрал. Иногда такие "тонкости" запарывают работу на неделю, т.к. в результате вынужден был сделать так: ---- DELETE FROM "Mdocm_Lite.dbf" MDL WHERE MDL."DELETE" = TRUE а потом через BDE паковать таблицу. таким извратом приходилось заниматься... Еще раз спасибо. |
NTFS 7 - 16.04.2004 - 12:17 | Да на здоровье. И тем не менее, ключевые слова в таблицах лучше не использовать. Могут быть проблемы. Замени поле DELETE на DEL. |
Grigoriy 8 - 16.04.2004 - 12:53 | Это не моя база, это база БЭСТ, я только читаю данные |