Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Вниз
ADO удаление записей Найти похожие ветки
← →
Степан (2004-02-25 19:31) [0]Здарвствуйте. Как можно в ADO, dbf-файлы, физически удалить помеченные на удаление записи программно(к примеру аналог команды PACK в FoxPro). Что бы уменьшить размеры файлов.
← →
sniknik © (2004-02-25 19:50) [1]только если провайдер это поддерживает, както к примеру ODBC VFP драйвер, так команда так и называется PACK.
← →
Степан (2004-02-26 17:15) [2]Базы у меня локальные. Использую я стандартные компоненты Дельфи TADOTable и TADOQuery.
← →
sniknik © (2004-02-26 19:01) [3]Степан (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-27 17:33) [4]Спасибо за помощь sniknik.
← →
SergP © (2004-02-29 04:25) [5]>кстати совет, TADOTable не используй никогда.
Небольшой вопрос: Почему? Иногда ведь бывает что намного удобнее использовать T[ADO]Table чем T[ADO]Query.
← →
sniknik © (2004-02-29 15:11) [6]потому что ADO это серверная технология, сделано так, даже локальная таблица будет перекачиватся через ядро (движок) и в общем открытие таблицы ADOTable аналогично запросу select * from tablename, что чаще всего избыточно (не надо потом "чтото ваш ADO тормозит")
правда есть как всегда исключения ;о), но лутше думаю использовать правильный стиль и изредка пользоватся исключениями чем всегда даже когда это не приносит выгоды. и потом даже для исключений(если уж пользоватся) удобнее ADODataSet возможностей больше.
известные мне "исключения"
очевидное: маленькая таблица всегда нужна полностью. (ничто не мешает сделать полный запрос в этом случае)
драйвера VFP: открывает таблицу как есть аналогично как в фокспро в собственном рабочем пространстве без перекачки. недостатки тоже очевидны и вытекают из самого способа доступа, если таблицы лежат не локально, трафик... ну понятно если все всегда перекачивается при любом действии. и "труднодоступность" рабочих пространств через SQL, так например команда требующая эксклюзивного доступа таже PACK TABLE не работает если уже делался селект этой таблици в данном коннекте (открыто в другом рабочем пространстве).
работает так даже если использовать ADOQuery.
Jet: режим директтабле. (жаль что это единственный драйвер поддерживаюший этот режим наряду с нормальным) тут только опасность использовать его на нелокальной базе (ну если пользуешся недумая то сам дурак).
насчет того что TADOTable удобнее тебе(??? не привык просто к ADODataSet), то это ничего не значит надо так как удобнее системе и тогда не будет лишних тормозов.
← →
NewD (2004-03-01 07:26) [7]Жаль у Адо нет возможности ограничивать считывание строк как в БДЕ - приходится это делать в инструкции SQL.
Может где-то можно это прописать - кто знает ?
← →
sniknik © (2004-03-01 14:59) [8]может кто и знает (возможно даже я ;о)), но не пойму чего именно "как в BDE" ограничивать?
опиши подробнее что имееш в виду (считай что BDE я совсем не знаю, поэтому по скудному намеку в вопросе угадать смысл мне не дано)
а вообще все ограничения/возможности мало зависят от ADO, больше от движка/sql сервера к которому подключон, и общение с ним идет именно через инструкции sql...
← →
VLAD-MAL (2004-03-01 15:31) [9]Небольшой вопрос: Почему? Иногда ведь бывает что намного удобнее использовать T[ADO]Table чем T[ADO]Query.
По кочану. Как только разберешься, как работают ADO - компоненты, которые не xxxTable, сам поймешь. Эти xxxTable вообще какой-то засланный враг в Borland придумал.
Извините за резкость, наболело.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c