Страница 2 из 2

Добавлено: 11 май 2010, 10:37
Vik

Код: Выделить всё

   begin
     kodosh:=ost.PutTableToDBF(-1, 'D:\1.dbf', 0);
     if kodosh <> 0 then message(kodosh);
   end;

Почему "-1"? Укажите константу по правилу tn<имя таблицы>.

Добавлено: 11 май 2010, 10:42
RAJAH
Из vipprogr.chm:

function PutTableToDBF (link : integer, fName : string, flags : word) : integer;

Параметры

link - номер узла логической таблицы. Константы с префиксом tn<имя таблицы>. Если link = -1 то выгружается вся логическая таблица.

fName - имя dbf-файла для выгрузки таблицы.

flags - режим выгрузки. Если flags = ptfFullTable то без учета ограничений.

Добавлено: 11 май 2010, 12:30
Vik
Понял. Всю вьюху у меня тоже не выгружает - та же самая ошибка, всегда выгружал отдельные узлы логической таблицы.

Добавлено: 11 май 2010, 12:43
RAJAH
Попробовал с ost.tnsaldomc, кстати: выгрузилась таблица без ошибок, но пустая, хотя записи должны быть.

Re: import|export to dbf из випа

Добавлено: 24 июн 2010, 08:07
ZooKeR
Попробуй так, если не стандартный функционал тебе не подходит. Решение допотопное, но иногда выручает.
///////Экспорт
var sPath : String;
var liHnd : LongInt;
sPath := sDirPath + '\DGK006_Form.dbf';
liHnd := DBFOpen(sPath, stCreate);
if(liHnd=0)
{
Message('Не могу создать Файл!'+chr(13)+sPath);
}
else
{
DBFAddfield(liHnd, 'nRec', dbchar, 200, 0);
DBFAddfield(liHnd, 'Name', dbchar, 200, 0);
DBFAddfield(liHnd, 'Template', dbchar, 200, 0);
DBFAddfield(liHnd, 'StartRow', dbchar, 200, 0);
DBFAddfield(liHnd, 'GroupTo', dbchar, 200, 0);
_loop DGK006_Form
{
DBFPutFieldValue(liHnd, 'nRec', String(DGK006_Form.nRec));
DBFPutFieldValue(liHnd, 'Name', String(DGK006_Form.Name));
DBFPutFieldValue(liHnd, 'Template', String(DGK006_Form.Template));
DBFPutFieldValue(liHnd, 'StartRow', String(DGK006_Form.StartRow));
DBFPutFieldValue(liHnd, 'GroupTo', String(DGK006_Form.GroupTo));
DBFInsertRecord (liHnd);
}
DBFClose(liHnd);
}

//////////Импорт
sPath := sDirPath + '\DGK006_Form.dbf';
liHnd := OpenDBFFile(sPath);
if (liHnd = 0)
{
Message('Не удалось загрузить список форм!');
}
else
{
if(DBFGetFirst(liHnd) = 0)
{
do
{
Insert Into DGK006_Form Set
DGK006_Form.nRec := Comp(DBFGetFieldValue(liHnd, 'nRec'))
,DGK006_Form.Name := String(DBFGetFieldValue(liHnd, 'Name'))
,DGK006_Form.Template := String(DBFGetFieldValue(liHnd, 'Template'))
,DGK006_Form.StartRow := LongInt(DBFGetFieldValue(liHnd, 'StartRow'))
,DGK006_Form.GroupTo := LongInt(DBFGetFieldValue(liHnd, 'GroupTo'))
;
}
while(DBFGetNext(liHnd) = 0);
}
DBFClose(liHnd);
}

В основном использую для написания конверторов.