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

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

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

вроде бы, если не забыл.


Наверх

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