Вопрос № 94213: Уважаемые Эксперты.
Сталкнулся с такой проблемой при работе с *.dbf через BDE... проблема такя... код который приведен в приложении только помечат к удалению строки базы, но не удаляет их :((( А задача именно в удалении...
второй код дабазляе...Вопрос № 94263: как подключить ntdll.dll что бы изпользовать ZwQuerySystemInformation
можно получить исходник с NTQuerySystemInformation и ZwQuerySystemInformation...
Вопрос № 94.213
Уважаемые Эксперты.
Сталкнулся с такой проблемой при работе с *.dbf через BDE... проблема такя... код который приведен в приложении только помечат к удалению строки базы, но не удаляет их :((( А задача именно в удалении...
второй код дабазляет еще одну строку...
Кстати.. если это имеет значение dbf родом из Клипер технологии...
Вариант динамического создания файла не совсем приемлем, т.к. одна из подзадач обновление.. при котором в базу 10-15 тыс строк нада добавить(удалить) пару сотен....
З.Ы. Бъюсь уже вторую неделю.... Уже даже не знаю в какую сторону лезть....
Отвечает: Алексей Демаков
Здравствуйте, Василенко Алексей Васильевич!
Непродолжительный поиск вывел на функцию DbiPackTable. Пример в приложении.
Приложение:
Ответ отправил: Алексей Демаков (статус: Студент)
Ответ отправлен: 06.07.2007, 23:11 Оценка за ответ: 5 Комментарий оценки: именно то что я скал... УРЯЯЯ. пасиба за подсказку
Отвечает: Maxim V.G.
Здравствуйте, Василенко Алексей Васильевич!
Я с BDE работал давненько и всего не помню но могу логически рассуждать примерно так:
Файл базы данных располжен на диске! Обращение к нему выполняется не напрямую, а посредство сервера/драйвера доступа баз данных (в данном случае BDE). Для увеличения скорости обращения к базе данных BDE предусматривает вариант создания копии базы данных (части базы данных) в памяти! При удалении/добавлении строк из/в базы данных всё это дело происходит в копии базы данных, а не в самом файле. Для полного удаления/добавления строк необходимо направить соответствующею команду для обновления таблиц. скорость будет
зависеть от ёмкости базы. Подобная ситуация не плохо сделана в 1С - в процессе работы помечаются все объекты на удаление. А для полного удаления необходимо получить монопольный доступ к файлам баз данных и выполнить соответствующею команду для обновления таблиц.
Таким образом предложу почитать более детальную инфу согласно вышеописанного. Наверняка есть не один способ как это сделать.
P.$. Таких проблем не будет возникать при использовании SQL серверов (MySQL, Sybase, MS SQL). Там скорее возникнет проблема пометки на удаления, но её обойти намного легче (например держать дополнительную таблицу для помеченных объектов).
Успехов в Ваших начинаниях.
--------- Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 2-ой класс)
Ответ отправлен: 07.07.2007, 00:01 Оценка за ответ: 3 Комментарий оценки: Рассуждения правильные.. идея смены БД хороша. но неприемлема. к сожалению... Постановка проблемы попрежнему висит в воздухе... к сожалению..
Вопрос № 94.263
как подключить ntdll.dll что бы изпользовать ZwQuerySystemInformation
можно получить исходник с NTQuerySystemInformation и ZwQuerySystemInformation
Отправлен: 07.07.2007, 12:30
Вопрос задал: Ingberg (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: kool
Здравствуйте, Ingberg!
Текст в приложении.
Работает вроде без ошибок.
Что возвращает - трудно сказать.
Удачи!
Приложение:
--------- I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 07.07.2007, 16:22