Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удаление записей помеченные на удаление в связке С++Builder & .dbf / 7 сообщений из 7, страница 1 из 1
03.09.2003, 15:31
    #32254879
Чернышов Вадим Константинович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей помеченные на удаление в связке С++Builder & .dbf
Подскажите пожалуйста такой вот интересный момент
в работе с БД (.dbf) из под С++ Builder 6.0:

При удалениии записей из таблицы таким вот методом
Код: plaintext
Table1->Delete()

запись логически удаляется и исчезает с глаз долой,
но физическе остается в dbf как помеченная на удаление.
В FoxPro эта проблема решается перепаковкой таблицы
Код: plaintext
pack

После чего все записи помеченные на удаление исчезают (удаляются).

А вот как сделать в С++ Builder чтоб записи удалялись совсем и НАВСЕГДА? :)

Заранее благодарен.
...
Рейтинг: 0 / 0
03.09.2003, 22:59
    #32255278
MrAlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей помеченные на удаление в связке С++Builder & .dbf
Только копированием во временную таблицу. Удалением старой и переименованием временной.
...
Рейтинг: 0 / 0
04.09.2003, 10:50
    #32255546
Чернышов Вадим Константинович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей помеченные на удаление в связке С++Builder & .dbf
Только копированием во временную таблицу. Удалением старой и переименованием временной.

Больно неудобный способ, неужели нет чего-нибудь получше?
...
Рейтинг: 0 / 0
04.09.2003, 10:52
    #32255553
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей помеченные на удаление в связке С++Builder & .dbf
поставить FoxPro

далее написать .prg

Код: plaintext
1.
2.
3.
4.
use <table name> exclusive
pack
close all
quit


и запускать этот скрипт

P.S. С .dbf в BCB никогда не работал
...
Рейтинг: 0 / 0
04.09.2003, 11:51
    #32255650
Чернышов Вадим Константинович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей помеченные на удаление в связке С++Builder & .dbf
Код: plaintext
1.
2.
3.
use <table name> exclusive
pack
close all
quit


Это не выход, так как придется вместе с основной прогой на BCB писать еще и утилиты на BCB, а там всякие проблемы доступа и. т.д.

Может быть какое-то другое решение?
...
Рейтинг: 0 / 0
05.09.2003, 09:27
    #32256581
Чернышов Вадим Константинович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей помеченные на удаление в связке С++Builder & .dbf
Ура нашлось решение!!!!

В С++ Builder есть функция переупаковки:

DBIResult DBIFN DbiPackTable (hDb, hCursor, pszTableName, [pszDriverType], bRegenIdxs);

Так вот с ее помощью данная проблема решается вот так:

Код: plaintext
1.
2.
3.
Table1->Close();
Table1->Exclusive=true;
Table1->Open();
DbiPackTable(Table1->DBHandle,Table1->Handle,NULL,NULL,true);


Спасибо всем кто отозвался :))
...
Рейтинг: 0 / 0
11.09.2003, 14:17
    #32262467
Удаление записей помеченные на удаление в связке С++Builder & .dbf
А лучше бы ну его на фиг, этот BDE.
Есть прекрасные(и бесплатные) компонеты от третьих фирм. В частности от Extended System
http:\\www.advantagedatabase.com
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удаление записей помеченные на удаление в связке С++Builder & .dbf / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]