powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delphi+ODBC Visual FoxPro Driver (XP SP3)
25 сообщений из 32, страница 1 из 2
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687448
vup70200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа на Делфи, подключаемся к БД (dbf) Visual FoxPro через ODBC драйвер. Пытаюсь удалить данные из таблицы, затем ее упаковать.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      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();
Данные удаляются, но упаковка не проходит по причине "Ашду in use". Возможно ли как-то решить эту проблему, или нужно для ADOConnection сделать Connected := False И лишь потом паковать? Т.е. если я к таблицам НЕ обращаюсь, упаковка проходит удачно. Но нужен именно такой сценарий - это транспортные файлы и после их обработки нужно их очистить для повторного использования
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687515
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vup70200Программа на Делфи, подключаемся к БД (dbf) Visual FoxPro через ODBC драйвер. Пытаюсь удалить данные из таблицы, затем ее упаковать.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      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();
Данные удаляются, но упаковка не проходит по причине "Ашду in use". Возможно ли как-то решить эту проблему, или нужно для ADOConnection сделать Connected := False И лишь потом паковать? Т.е. если я к таблицам НЕ обращаюсь, упаковка проходит удачно. Но нужен именно такой сценарий - это транспортные файлы и после их обработки нужно их очистить для повторного использования
Прежде чем делать Pack надо открыть файл эксклюзивно USE EXCLUSIVE
Если файл DBF в это время уже кем то открыт и используется, то открыть эксклюзивно другим юзверем не получится.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687626
Fffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
pack olorderd
Такой команды в FoxPro нет.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687654
Fffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил сам себя. Оказывается, давно есть. Только Pack без параметров сжимает текущую эксклюзивно открытую таблицу, а Pack с название таблицы упаковывает указанную таблицу, если сам может ее эксклюзивно захватить.
Предварительное открытие вызовет ошибку.
Но как это сделать из Дельфи, это надо и спрашивать в форуме по Дельфи.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687668
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fffffffffffffffff,

Иди в Жопу ))))))))
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687687
vup70200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fffffffffffffffff,

Да вот Д тут как раз и не причем..Это все происки ODBC Visual FoxPro driver
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687692
Fffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugenkru10,
жди очередного бана.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687713
Fffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vup70200
Да вот Д тут как раз и не причем..Это все происки ODBC Visual FoxPro driver
ODBC driver соответствует 6-й версии FoxPro. Если там был такой синтаксис, то должно работать.
А я не знал, что он и в 9-й есть.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687731
vup70200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fffffffffffff,

да оно то работает.. но после DELETE нельзя выполнить PACK (ZAP ODBC for VFP не поддерживает), так как таблицы ЗАНЯТЫ ("File in use")
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687760
vup70200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе, конечно, можно поменять местами

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
      
    try
      cmdPack.CommandText := 'pack olorderh';
      cmdPack.Execute();

      cmdPack.CommandText := 'pack olorderd';
      cmdPack.Execute();
    finally
      cmdPack.CommandText := 'delete from olorderh';
      cmdPack.Execute();

      cmdPack.CommandText := 'delete from olorderd';
      cmdPack.Execute();
    end;
тогда какой-нибудь раз да и проскочит упаковка. а удаленные данные не будут видны и так...
но все равно - интересно сделать "одним наскоком"
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687798
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FffffffffffffffEugenkru10,
жди очередного бана.
Да ты лох ваще! ))))))
Гость гавно не бывал давно! ))))))
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687799
Ffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну так я же объяснил
Код: plaintext
Pack TableName
упаковывает только закрытую таблицу.
Для упаковки открытой и эксклюзивно используется Pack без параметров.

Вообще, то, что тебе приходится очищать таблицу, говорит о неправильном подходе к решению задачи.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687808
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vup70200Fffffffffffff,

да оно то работает.. но после DELETE нельзя выполнить PACK (ZAP ODBC for VFP не поддерживает), так как таблицы ЗАНЯТЫ ("File in use")
Оно и не будет работать, потому что Fffffffffffff лох! )))))))) хер ты его советы слушаешь? )))))))
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687818
Fffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugenkru10,
ты школьник что-ли? Это профессиональный форум. Здесь принято вести себя посолидней.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687829
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FffffffffffffffEugenkru10,
ты школьник что-ли? Это профессиональный форум. Здесь принято вести себя посолидней.

гы, здесь - скл.ру,
поэтому на троллей, ботов и других придурков не стоит обижаться,
нужно просто не читать, что они пишут.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687833
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vup70200,

cmdPack.CommandText := 'pack'
попробуй указать через символ возврата каретки две команды
cmdPack.CommandText := 'USE olorderh EXCLUSIVE'+chr(13)+'PACK'
Наверно и делфи можно сразу несколько команд сперва подготовить а потом передать драйверу.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687841
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FffffffffffffffEugenkru10,
ты школьник что-ли? Это профессиональный форум. Здесь принято вести себя посолидней.
Ты халоп хоть знаешь с кем ты разговариваешь? ))))))))))
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687874
прошелмимо
поэтому на троллей, ботов и других придурков не стоит обижаться,
нужно просто не читать, что они пишут.
Да я не обижаюсь. Моих знаний от его троллинга не убудет - не прибудет. Но его же читают те, кто на форум за советом приходит.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687890
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ffffffffffffffffffffffпрошелмимо
поэтому на троллей, ботов и других придурков не стоит обижаться,
нужно просто не читать, что они пишут.
Да я не обижаюсь. Моих знаний от его троллинга не убудет - не прибудет. Но его же читают те, кто на форум за советом приходит.
Откуда у тебя там знания? У тебя в голове пусто! )))))))))
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687897
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FfffffffffffffНу так я же объяснил
Код: plaintext
Pack TableName
упаковывает только закрытую таблицу.
Для упаковки открытой и эксклюзивно используется Pack без параметров.

Вообще, то, что тебе приходится очищать таблицу, говорит о неправильном подходе к решению задачи.
Запиши себе на лбу - Pack упаковывает только Открытую таблицу! Знаток пчелиный )))))))))))
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36687932
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ffffffffffffffffffffffпрошелмимо
поэтому на троллей, ботов и других придурков не стоит обижаться,
нужно просто не читать, что они пишут.
Да я не обижаюсь. Моих знаний от его троллинга не убудет - не прибудет. Но его же читают те, кто на форум за советом приходит.

не кормите тролля - он сам заткнется.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36688052
vup70200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
малость подшуршал, нашел направление.. но все равно, вторую таблицу на пакует, только первую.
Код: plaintext
1.
2.
      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();
а попытка вставить use olorderd приводит к эксцепшину "Syntax error or access violation"
указание pack olorderd - к File in use
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36688320
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vup70200малость подшуршал, нашел направление.. но все равно, вторую таблицу на пакует, только первую.
Код: plaintext
1.
2.
      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();
а попытка вставить use olorderd приводит к эксцепшину "Syntax error or access violation"
указание pack olorderd - к File in use
Ну вот видешь, значит мой метод сработал.
Так можно целый кусок программы передать драйверу на съедение.
А какую ещё вторую таблицу??? мы видим только одну у тебя.
После Pack надо закрыть базу - допиши #13#10'USE' - без параметров
В противном случае таблицу нельзя использовать другим юзверям в сети.
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36688329
vup70200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugenkru10,

как это ОДНУ? delete from olorderH и delete from olorderD
...
Рейтинг: 0 / 0
Delphi+ODBC Visual FoxPro Driver (XP SP3)
    #36688330
Eugenkru10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vup70200,

а понял - olorderh и olorderd
просто выполни последовательность команд

SELECT 0
USE olorderh EXCLUSIVE
PACK
USE

аналогично для olorderd

SELECT 0
USE olorderd EXCLUSIVE
PACK
USE

проблем не будет.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delphi+ODBC Visual FoxPro Driver (XP SP3)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]