![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi+ODBC Visual Foxpro driver [D7, dBase, FoxPro]
Виталий Панасенко © (2010-06-15 13:02:00)Программа на Делфи, подключаемся к БД (dbf) Visual FoxPro через ODBC драйвер. Пытаюсь удалить данные из таблицы, затем ее упаковать.
[SRC]
cmdPack.CommandText := 'delete from olorderh';
cmdPack.Execute();
cmdPack.CommandText := 'delete from olorderd';
cmdPack.Execute();
cmdPack.CommandText := 'pack olorderh';
cmdPack.Execute();
cmdPack.CommandText := 'pack olorderd';
cmdPack.Execute();
[/SRC]
Данные удаляются, но упаковка не проходит по причине "Ашду in use". Возможно ли как-то решить эту проблему, или нужно для ADOConnection сделать Connected := False И лишь потом паковать? Т.е. если я к таблицам НЕ обращаюсь, упаковка проходит удачно. Но нужен именно такой сценарий - это транспортные файлы и после их обработки нужно их очистить для повторного использования
Anatoly Podgoretsky (2010-06-16 08:54:00) [1]> Виталий Панасенко (15.06.2010 17:55:12) [12]
И все таки попробуй OLEDB это прозрачно, сменить только строку подключения,
конечно если каких либо трюков не используешь. Обычно после этого начинает
работать.
Виталий Панасенко (2010-06-15 17:55:00) [2]
> Правильный$Вася (15.06.10 16:58) [11]
я об этом уже думал... их около 60 таблиц... но нужных мне много меньше
Правильный$Вася (2010-06-15 16:58:00) [3]
> это транспортные файлы и после их обработки нужно их очистить
> для повторного использования
в таких случаях лучше не насиловать систему, а просто стереть файлы и создать (скопировать) пустые нужной структуры
быстрее и без мороки
sniknik (2010-06-15 16:48:00) [4]
Remarks
Changing the setting of SET EXCLUSIVE doesn't change the status of previously opened tables. For example, if a table is opened with SET EXCLUSIVE set to ON, and SET EXCLUSIVE is later changed to OFF, the table retains its exclusive-use status.
SET EXCLUSIVE is scoped to the current data session.
Виталий Панасенко (2010-06-15 16:35:00) [5]да нет, только зачем что-то еще создавать..
вот, порылся, нашел направление..но вторую таблицу все равно не пакует
cmdPack.CommandText := 'set exclusive on;'#13#10' delete from olorderh;'#13#10'pack;'#13#10'delete from olorderd;'#13#10' pack;'#13#10' set exclusive off;';
cmdPack.Execute();
Anatoly Podgoretsky (2010-06-15 16:03:00) [6]> Виталий Панасенко (15.06.2010 15:25:07) [7]
А что постоянно создаются новые?
Виталий Панасенко (2010-06-15 15:25:00) [7]
> Anatoly Podgoretsky © (15.06.10 14:35) [5]
Одна учетная система создает системные DSN, с конкретными именами и драйверами. И уже с ними работает...И нужно организовать импорт/экспорт между двумя не связанными системами. Тут хранятся только транспортные данные.. Одна система выдала на гора, вторая втянула и, при удачном импорте, очистила таблицы
Anatoly Podgoretsky (2010-06-15 15:07:00) [8]> sniknik (15.06.2010 14:35:04) [4]
Вообще то, что то в этом есть, я уже читал подобное.
sniknik (2010-06-15 14:35:00) [9]> zap не канает...для VFP драйвера
странно весьма... т.к. это вариация pack, даже описываются в одном разделе.
Anatoly Podgoretsky (2010-06-15 14:35:00) [10]> Виталий Панасенко (15.06.2010 13:02:00) [0]
А почему не OLEDB?
Виталий Панасенко(дом) (2010-06-15 13:17:00) [11]zap не канает...для VFP драйвера
sniknik (2010-06-15 13:12:00) [12]+ обработка, если есть выборки то делать не select, а use.
sniknik (2010-06-15 13:11:00) [13]> delete from olorderh
> pack olorderh
= zap olorderh
вроде бы, если не забыл.