![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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.