Конференция "Базы" » Очистить всю таблицу DBF с помощью SQL [dBase, FoxPro]
 
  • Курдль (26.08.08 17:00) [0]
    Вот уж досталось мне наследие :(
    Не думал, что придется вернуться в каменный век... FoxPro

    Кто поможет SQL-но очистить таблицу DBF?
    А то DML
    delete from TABLE_NAME

    вызывает только пометку удаляемых записей, но не физическую их смерть.
  • Сергей М. © (26.08.08 17:08) [1]
    С помощью SQL никак.
    SQL не работает на уровне контейнера.
  • Сергей М. © (26.08.08 17:10) [2]

    > Вот уж досталось мне наследие


    В своей беде ты не одинок - многие несут такой же крест)
  • Курдль (26.08.08 17:16) [3]
    Что-то проклевывается.
    Типа

    "delete from TABLE_NAME"
    "pack TABLE_NAME"


    Только между ними что-то надо предпринять типа закрытия коннекции или коммития транзакции (а то ругается, что DBF занят).
  • Курдль (26.08.08 17:27) [4]
    Нормально отработало.
    Надо только между DML закрыть и открыть соединение (вот уж танцы с бубнами).
  • zap TABLE_NAME... если работать через VFP драйвер
  • Anatoly Podgoretsky © (27.08.08 00:49) [6]
    "pack TABLE_NAME" и "zap TABLE_NAME" не являются SQL командами, они просто выдаются интерпритатору FoxPro для обработки.
    Кстати, поскольку очистить надо всю таблицу, то второе правильно, без всякого "delete from TABLE_NAME".

    Интерпритатору FoxPro можно передать любую команду, включая SQL, который также включен в Интерпритатор FoxPro. Надо просто понять, что в данном случае ведется прямая работа с интерпритатором, а не с SQL
  • MsGuns © (27.08.08 11:19) [7]
    Чем не понравилось Delete Table + Create Table ?
  • Курдль (27.08.08 12:35) [8]

    > Anatoly Podgoretsky ©   (27.08.08 00:49) [6]
    > Надо просто понять, что в данном случае ведется прямая работа
    > с интерпритатором, а не с SQL


    В данном случае ведется работа с провайдером
    VFPOLEDB

    .
    Спасибо за наводку на ценную мысль: надо бы попробовать, как будет работать приложение на "чистой" машине - без установленного FoxPro, а только с провайдером.
  • Курдль (27.08.08 12:40) [9]
    А, кстати, DBF-овский SQL параметров не поддерживает? Мне не удалось добиться :(
  • Курдль (27.08.08 12:52) [10]

    > Виталий Панасенко(дом)   (26.08.08 20:11) [5]
    > zap TABLE_NAME... если работать через VFP драйвер

    zap TABLE_NAME через PleDb провайдер:
    Command contains unrecognized phrase/keyword.

  • Сергей М. © (27.08.08 14:22) [11]

    > Курдль   (27.08.08 12:52) [10]


    Там, в VFPOLEDB? много еще чего не работает или работает не шибко прямо.
    Если хочешь иметь полноценный корректный доступ к фоксовым премудростям, нужно пользовать полноценный VFP ран-тайм модуль. Его можно инсталлировать отдельно как самостоятельный продукт, т.е. целиком MSVFP ради этого устанавливать не нужно.

    Дельфийская обертка к VFPRTL тоже существует, зовется foxauto
  • Курдль (27.08.08 14:56) [12]

    > Сергей М. ©   (27.08.08 14:22) [11]
    > Если хочешь иметь полноценный корректный доступ к фоксовым
    > премудростям, нужно пользовать полноценный VFP ран-тайм
    > модуль.


    Глаза б мои его не видели! :)
    Имею ущербную приблуду на FoxPro, которую надо вкорячить... простите, ИНТЕГРИРОВАТЬ, в существующую автоматизированную систему. Имею MS VS 2005.
    А "VFP ран-тайм модуль" чем юзается? COM-ом?
    Я-то по рабоче-крестьянски из ADO.NET достукиваюсь...
  • Сергей М. © (27.08.08 15:04) [13]

    > "VFP ран-тайм модуль" чем юзается? COM-ом?


    Ага.
    Это и есть СOM-сервер, только некоторым образом хитрозадый - просто так средствами тривиального вызова CreateComObject до него не достучаться, требуется довольно изощренная "прокладка", коей foxauto и является.

    Автор foxauto, видимо, как раз заботился о горемыках типа тебя)
  • Виталий Панасенко © (27.08.08 15:27) [14]

    > Курдль   (27.08.08 12:52) [10]

    А ODBC Visual FoxPro Driver нельзя юзать? Через OLE DB получилось только через анус: Delete from, отключить ADOConnection, подключить и pack.. без отключения/подключения получаю File in use
  • Курдль (27.08.08 15:46) [15]

    > Виталий Панасенко ©   (27.08.08 15:27) [14]
    >
    >
    > > Курдль   (27.08.08 12:52) [10]
    >
    > А ODBC Visual FoxPro Driver нельзя юзать? Через OLE DB получилось
    > только через анус: Delete from, отключить ADOConnection,
    >  подключить и pack.. без отключения/подключения получаю
    > File in use


    Мне надо извлекать туеву хучу мелких базочек из разных папочек.
    (Между прочим, это дорогостоящее промышленное решение, растиражированное не на одну крупную компанию!).
    А ODBC сначала надо настраивать. Или нет? Программно я этого делать не умею.
    Зато OLEDB подсовываешь путь к DBF-папке и все!

    P.S. У меня Aqua Data Studio настроена на доступ к тестовым базам FoxPro через ODBC. Так там тоже без переподключения обнулить не удается.
  • Виталий Панасенко © (27.08.08 15:52) [16]
    DRIVER=Microsoft Visual FoxPro Driver (*.dbf);UID=;PWD=;SourceDB=z:\all;SourceType=DBF;Exclusive=No;BackgroundFetch=Ye s;Collate=Machine;Null=Yes;Deleted=Yes;
    Обрати внимание на SourceDB
    Это строка подключения ADOCOnnection
  • Виталий Панасенко © (27.08.08 15:55) [17]
    Да и, кажись, можно тупо указать SourceDB=c:\, а затем "плясать" точно, так же, как и от алиаса БДЕ.. select * from 'c:\dbf\dbf.dbf' и т.д. в том числе и zap 'c:\dbf\dbf.dbf'
  • Виталий Панасенко © (27.08.08 15:58) [18]
    select канает, ZAP - нет
  • Сергей М. © (27.08.08 16:29) [19]

    > Виталий Панасенко ©   (27.08.08 15:58) [18]
    >
    > select канает, ZAP - нет
    >


    С какого перепугу zap обязан "канать" ?
    FoxODBC-драйвер не обязан интерпретировать всякую фоксовую лабуду, не имеющую отношения к SQL92/99 и иже с ними
 
Конференция "Базы" » Очистить всю таблицу DBF с помощью SQL [dBase, FoxPro]
Есть новые Нет новых   [134473   +28][b:0][p:0.001]