Импорт файла DBF во временную таблицу

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
gavrilyukmg
заказчик
Сообщения: 87
Зарегистрирован: Пт, 14/03/2008 11:15
Имя Фамилия: Марина Гаврилюк
Откуда: КЧХК
Контактная информация:

Импорт файла DBF во временную таблицу

Сообщение gavrilyukmg »

Ребята,помогите, пожалуйста. Опыта практически у меня никакого.
При запуске этого интерфейса Галактика вылетает по Runtime. Что ей не хватает?

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

table struct ppmtemp
(
  nn       : string[30],
  nob      : string[60],
  drasx    : date,
  gm       : word,
  cu       : double,
  bazost   : double,
  newost   : double, 
  rasxod   : double,
  tekost   : double,
  sklkod   : string[60],
  cnrec     : comp
)
with index
(
  ppmtemp =  gm+sklkod+nn
)
;

Interface  nelikvid 'Æîû íѺ ñó¿ªÑ¡¿∩ ßóδΦÑ 12 ¼Ñß∩µÑó' DoAccept, EscClose, cyan;
Show at (1,1,70,15);
var
    mOpen : longint;
    mode,countr,kz : integer;
create view nel
as select ppmtemp.*;
Screen SRC show at (,,,);
Buttons
  cmOk, Default;
  cmCancel;

<<

 
  
 
                    <.  OK  .>    <. ÄΓ¼Ñ¡á .>
>>

end;

 
HandleEvent
cmOk:
{
   mode:= 15648;
 
   mOpen:=DBFOpen('\\hq\public\galaxy\Gal712\TmpFrm\ppm43069.dbf',mode);
    kz:=DBFGetFirst(mOpen);
logstrtofile('logs.log',kz);
    while kz=0 do
     {logstrtofile('logs.log',mode);
       ppmtemp.nn:=DBFGetFieldValue(mOpen,'nn');
       ppmtemp.gm:=DBFGetFieldValue(mOpen,'gm');
       ppmtemp.cu:=DBFGetFieldValue(mOpen,'cu');
       ppmtemp.bazost:=DBFGetFieldValue(mOpen,'bazost');
       ppmtemp.newost:=DBFGetFieldValue(mOpen,'newost');
       ppmtemp.rasxod:=DBFGetFieldValue(mOpen,'rasxod');
       ppmtemp.tekost:=DBFGetFieldValue(mOpen,'tekost');
       ppmtemp.sklkod:=DBFGetFieldValue(mOpen,'skl');
       ppmtemp.cnrec:=DBFGetFieldValue(mOpen,'nrec');
   insert current ppmtemp;
       kz:=DBFGetNext(mOpen);
logstrtofile('logs.log',kz);     };
    DBFClose(mOpen);
}
end;
end.
Аватара пользователя
pin
топ-софт
Сообщения: 1
Зарегистрирован: Ср, 09/04/2008 16:51
Имя Фамилия: Башинская Анна
Откуда: ТопСофт
Контактная информация:

Сообщение pin »

1. Бросилось в глаза то, что выборка из ниоткуда, т.е. select ppmtemp.*; вместо select ppmtemp.* from ppmtemp;
2. При добавлении новой записи, мы обычно пишем
ClearBuffer(#MyTable);
MyTable.Field = Value;
insert current MyTable;
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

хм
если при запуске, то может вы попробуете ещё более простой интерфейс написать
до кода-то вашего всё равно дело не доходит
Ответить