Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delphi+ODBC Visual FoxPro Driver (XP SP3) / 25 сообщений из 32, страница 1 из 2
15.06.2010, 13:01
    #36687448
vup70200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
Программа на Делфи, подключаемся к БД (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
15.06.2010, 13:21
    #36687515
Eugenkru10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
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
15.06.2010, 13:54
    #36687626
Fffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
Код: plaintext
pack olorderd
Такой команды в FoxPro нет.
...
Рейтинг: 0 / 0
15.06.2010, 14:03
    #36687654
Fffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
Проверил сам себя. Оказывается, давно есть. Только Pack без параметров сжимает текущую эксклюзивно открытую таблицу, а Pack с название таблицы упаковывает указанную таблицу, если сам может ее эксклюзивно захватить.
Предварительное открытие вызовет ошибку.
Но как это сделать из Дельфи, это надо и спрашивать в форуме по Дельфи.
...
Рейтинг: 0 / 0
15.06.2010, 14:06
    #36687668
Eugenkru10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
Fffffffffffffffff,

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

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

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

Код: 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
15.06.2010, 14:37
    #36687798
Eugenkru10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
FffffffffffffffEugenkru10,
жди очередного бана.
Да ты лох ваще! ))))))
Гость гавно не бывал давно! ))))))
...
Рейтинг: 0 / 0
15.06.2010, 14:37
    #36687799
Ffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
Ну так я же объяснил
Код: plaintext
Pack TableName
упаковывает только закрытую таблицу.
Для упаковки открытой и эксклюзивно используется Pack без параметров.

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

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

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

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

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

не кормите тролля - он сам заткнется.
...
Рейтинг: 0 / 0
15.06.2010, 16:03
    #36688052
vup70200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
малость подшуршал, нашел направление.. но все равно, вторую таблицу на пакует, только первую.
Код: 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
15.06.2010, 17:46
    #36688320
Eugenkru10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
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
15.06.2010, 17:51
    #36688329
vup70200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+ODBC Visual FoxPro Driver (XP SP3)
Eugenkru10,

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

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

SELECT 0
USE olorderh EXCLUSIVE
PACK
USE

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

SELECT 0
USE olorderd EXCLUSIVE
PACK
USE

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


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