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

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

ADO удаление записей [D6, dBase, FoxPro]


Степан ©   (2004-02-25 19:31:00) 

Здарвствуйте. Как можно в ADO, dbf-файлы, физически удалить помеченные на удаление записи программно(к примеру аналог команды PACK в FoxPro). Что бы уменьшить размеры файлов.


VLAD-MAL   (2004-03-01 15:31:00) [1]

Небольшой вопрос: Почему? Иногда ведь бывает что намного удобнее использовать T[ADO]Table чем T[ADO]Query.

По кочану. Как только разберешься, как работают ADO - компоненты, которые не xxxTable, сам поймешь. Эти xxxTable вообще какой-то засланный враг в Borland придумал.

Извините за резкость, наболело.


sniknik   (2004-03-01 14:59:00) [2]

может кто и знает (возможно даже я ;о)), но не пойму чего именно "как в BDE" ограничивать?
опиши подробнее что имееш в виду (считай что BDE я совсем не знаю, поэтому по скудному намеку в вопросе угадать смысл мне не дано)

а вообще все ограничения/возможности мало зависят от ADO, больше от движка/sql сервера к которому подключон, и общение с ним идет именно через инструкции sql...


NewD   (2004-03-01 07:26:00) [3]

Жаль у Адо нет возможности ограничивать считывание строк как в БДЕ - приходится это делать в инструкции SQL.
Может где-то можно это прописать - кто знает ?


sniknik   (2004-02-29 15:11:00) [4]

потому что ADO это серверная технология, сделано так, даже локальная таблица будет перекачиватся через ядро (движок) и в общем открытие таблицы ADOTable аналогично запросу select * from tablename, что чаще всего избыточно (не надо потом "чтото ваш ADO тормозит")

правда есть как всегда исключения ;о), но лутше думаю использовать правильный стиль и изредка пользоватся исключениями чем всегда даже когда это не приносит выгоды. и потом даже для исключений(если уж пользоватся) удобнее ADODataSet возможностей больше.

известные мне "исключения"
очевидное: маленькая таблица всегда нужна полностью. (ничто не мешает сделать полный запрос в этом случае)
драйвера VFP: открывает таблицу как есть аналогично как в фокспро в собственном рабочем пространстве без перекачки. недостатки тоже очевидны и вытекают из самого способа доступа, если таблицы лежат не локально, трафик... ну понятно если все всегда перекачивается при любом действии. и "труднодоступность" рабочих пространств через SQL, так например команда требующая эксклюзивного доступа таже PACK TABLE не работает если уже делался селект этой таблици в данном коннекте (открыто в другом рабочем пространстве).
работает так даже если использовать ADOQuery.
Jet: режим директтабле. (жаль что это единственный драйвер поддерживаюший этот режим наряду с нормальным) тут только опасность использовать его на нелокальной базе (ну если пользуешся недумая то сам дурак).

насчет того что TADOTable удобнее тебе(??? не привык просто к ADODataSet), то это ничего не значит надо так как удобнее системе и тогда не будет лишних тормозов.


SergP   (2004-02-29 04:25:00) [5]

>кстати совет, TADOTable не используй никогда.

Небольшой вопрос: Почему? Иногда ведь бывает что намного удобнее использовать T[ADO]Table чем T[ADO]Query.


Степан   (2004-02-27 17:33:00) [6]

Спасибо за помощь sniknik.


sniknik   (2004-02-26 19:01:00) [7]

Степан   (26.02.04 17:15) [2]
это в данном случае неважно, к кому подключаешся? -> OLEDB Jet, OLEDB VFP, ODBC VFP driver, ODBC dBase driver (или DSN от них "Visual FoxPro Tables/dBASE Files"), ...... ?

из указаных в половине (те что с VFP) есть sql команда PACK, в остальных придется копированием в пустую таблицу и заменой ей оригинальной.

кстати совет, TADOTable не используй никогда.


Степан   (2004-02-26 17:15:00) [8]

Базы у меня локальные. Использую я стандартные компоненты Дельфи TADOTable и TADOQuery.


sniknik   (2004-02-25 19:50:00) [9]

только если провайдер это поддерживает, както к примеру ODBC VFP драйвер, так команда так и называется PACK.


Наверх

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