|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.03.2012, 14:55 | #1 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Locate и удаленные записи в DBF
Всем привет.
В программе загружаю dbf-файл и далее в цикле брожу по этому файлу: Код:
TDsDbfTable - в нем свойство ShowDeleted устанавливаю в False TVKDBFNTX - в нем свойство SetDeleted устанавливаю в False и т.п. В гриде все ок, удаленных записей не видно, но если сделать Locate() на удаленную запись - она становится видимой и курсор перемещается на нее (странно, что я раньше этого не знал), т.е. Locate становится True (кстати, RecordCount датасета почему-то не изменяется). Как победить удаленные записи в dbf? Гугл не помог. PS. Упаковку таблицы не предлагать, часто ломает файл и бухгалтерия ругается матом. |
16.03.2012, 18:26 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
ADOQuery не пробовали? Можно SQL-запросом с MSDASQL, Jet OLEDB или Visual FoxPro провайдером. Зависит от кодировки и наличия встроенного CDX. Удалять также SQL. C этими провайдерами и ADOTable отработает, но насчет видимости удаленных не скажу, не пробовал. Можно настройку провайдеров здесь посмотреть
http://programmersforum.ru/showthread.php?t=158173 Visual FoxPro провайдер правда ставить нужно, зато первые два всегда в наличии
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 16.03.2012 в 18:53. |
16.03.2012, 23:28 | #3 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Аватар, спасибо за идею с ADO, буду пробовать.
Удалять из dbf-файлов ничего не нужно. Редактировать тоже. Только делать locate и выбирать нужные значения из полей. Я уже думал делать таким образом: - загружаю dbf-файл в какой-нибудь TDBFTable, разумеется, без удаленных записей - циклом перегоняю всю эту таблицу в таблицу в памяти и потом делаю locate по таблице в памяти. Способ, конечно, не очень красивый, но там этих локейтов штук 80 написано. Очень не хочется их все переписывать вручную |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск единственной записи через locate | ИВэТэшка | Помощь студентам | 3 | 10.04.2009 15:21 |
Экспорт записи в *.dbf файл | Galgi | БД в Delphi | 2 | 20.02.2008 07:02 |
Как из dbf перенести все записи в определенную позицию? | Askat | БД в Delphi | 3 | 03.07.2007 12:13 |
Удаление записи из *.dbf | BJF.41 | БД в Delphi | 4 | 15.03.2007 18:29 |
удалить записи в таблице Dbf. | pups | БД в Delphi | 7 | 15.12.2006 19:19 |