import|export to dbf из випа

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

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

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

Почему "-1"? Укажите константу по правилу tn<имя таблицы>.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение RAJAH »

Из vipprogr.chm:

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

Параметры

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

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

flags - режим выгрузки. Если flags = ptfFullTable то без учета ограничений.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

Понял. Всю вьюху у меня тоже не выгружает - та же самая ошибка, всегда выгружал отдельные узлы логической таблицы.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение RAJAH »

Попробовал с ost.tnsaldomc, кстати: выгрузилась таблица без ошибок, но пустая, хотя записи должны быть.
ZooKeR
Сообщения: 1
Зарегистрирован: 19 мар 2008, 08:26
Откуда: Хабаровск
Контактная информация:

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

Сообщение 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);
}

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