Доброго времени суток всем!
Хочу функцией PutTableToDBF выгрузить всю логическую таблицу, но результат нулевой.
Для этого указываю link = -1
При этом получается выгружать отдельные узлы этой логической таблицы.
Логическая таблица под катом.
PutTableToDBF Выгрузка всей логической таблицы
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
PutTableToDBF Выгрузка всей логической таблицы
Программист-самоучка
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: PutTableToDBF Выгрузка всей логической таблицы
Вот логическая таблица
create view vw_PlanPrices
as Select
Dogovor.Nodoc
,Dogovor.Nodoc_ext
,Dogovor.Ddoc
,Katorg.Name
,Katnotes.Name
,Dogovor.Summa
,Katmc.Name
,Katmc.Obozn
,Spdocs.Kol
,Spdocs.Price
,Spdocs.Kol*Spdocs.Price
,Prices.Price
,Spdocs.Kol*Prices.Price
,Spdocs.Kol*Spdocs.Price - Spdocs.Kol*Prices.Price
From
Dogovor
,Katorg
,Katnotes
,KatMc
,SpDocs
,Prices
Where
((
Dogovor.Corg == KatOrg.Nrec
and Dogovor.Cnote == KatNotes.Nrec
and Dogovor.Nrec == SpDocs.Cdoc (noindex)
and Spdocs.CmcUsl == KatMc.Nrec
and Spdocs.CmcUsl == Prices.cThing (noindex)
and (281474976710667 = Prices.cklprice)
))
and 281474976739039 = Dogovor.Nrec
;
Так вызываю функцию:
vw_PlanPrices.PutTableToDBF (-1, 'D:\PricesPlan.dbf', 0 );
create view vw_PlanPrices
as Select
Dogovor.Nodoc
,Dogovor.Nodoc_ext
,Dogovor.Ddoc
,Katorg.Name
,Katnotes.Name
,Dogovor.Summa
,Katmc.Name
,Katmc.Obozn
,Spdocs.Kol
,Spdocs.Price
,Spdocs.Kol*Spdocs.Price
,Prices.Price
,Spdocs.Kol*Prices.Price
,Spdocs.Kol*Spdocs.Price - Spdocs.Kol*Prices.Price
From
Dogovor
,Katorg
,Katnotes
,KatMc
,SpDocs
,Prices
Where
((
Dogovor.Corg == KatOrg.Nrec
and Dogovor.Cnote == KatNotes.Nrec
and Dogovor.Nrec == SpDocs.Cdoc (noindex)
and Spdocs.CmcUsl == KatMc.Nrec
and Spdocs.CmcUsl == Prices.cThing (noindex)
and (281474976710667 = Prices.cklprice)
))
and 281474976739039 = Dogovor.Nrec
;
Так вызываю функцию:
vw_PlanPrices.PutTableToDBF (-1, 'D:\PricesPlan.dbf', 0 );
Программист-самоучка
Re: PutTableToDBF Выгрузка всей логической таблицы
Лучше так
((
281474976739039 == Dogovor.Nrec - если убрать будут все договора
and Dogovor.Corg == KatOrg.Nrec
and Dogovor.Cnote == KatNotes.Nrec
and 400==SpDocs.tidk // или чему он там у вас равен
and Dogovor.Nrec == SpDocs.Cdoc - спецификации может не быть
and Spdocs.CmcUsl == KatMc.Nrec - это может быть услуга
and 281474976710667 == Prices.cklprice - в этом прайсе может и не быть такой ТМЦ
and Spdocs.CmcUsl == Prices.cThing
));
((
281474976739039 == Dogovor.Nrec - если убрать будут все договора
and Dogovor.Corg == KatOrg.Nrec
and Dogovor.Cnote == KatNotes.Nrec
and 400==SpDocs.tidk // или чему он там у вас равен
and Dogovor.Nrec == SpDocs.Cdoc - спецификации может не быть
and Spdocs.CmcUsl == KatMc.Nrec - это может быть услуга
and 281474976710667 == Prices.cklprice - в этом прайсе может и не быть такой ТМЦ
and Spdocs.CmcUsl == Prices.cThing
));
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: PutTableToDBF Выгрузка всей логической таблицы
Oiko,
К сожалению никаких изменений не произошло
если эту конструкцию написать в саппорте, то получается правильный результат,
так что запрос правильный. Может есть ещё какие-то подводные камни?
К сожалению никаких изменений не произошло
если эту конструкцию написать в саппорте, то получается правильный результат,
так что запрос правильный. Может есть ещё какие-то подводные камни?
Программист-самоучка
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: PutTableToDBF Выгрузка всей логической таблицы
а что за первый параметр -1 ?
я выгружаю так PutTableToDBF(#table,path, ptfFullTable); но это конкретная таблица... может нужно указать имя вьюхи?
я выгружаю так PutTableToDBF(#table,path, ptfFullTable); но это конкретная таблица... может нужно указать имя вьюхи?
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: PutTableToDBF Выгрузка всей логической таблицы
Алексей,
-1 - согласно документации в этом случае должна выгружаться вся таблица.
К сожалению, ваш способ не помог, компилятор ругается, что не понимает, зачем в этом месте имя таблицы.
Кроме того, обошел проблему, используя средства для работы с Excell файлами вместо PutTableToDBF.
Это заняло больше времени, но задача решена.
-1 - согласно документации в этом случае должна выгружаться вся таблица.
К сожалению, ваш способ не помог, компилятор ругается, что не понимает, зачем в этом месте имя таблицы.
Кроме того, обошел проблему, используя средства для работы с Excell файлами вместо PutTableToDBF.
Это заняло больше времени, но задача решена.
Программист-самоучка
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: PutTableToDBF Выгрузка всей логической таблицы
вроде выгружает навскидку на простом примерчике все :
может глючит где то на каком то узле выгрузки(или поле в select-liste). Нужно пробовать отключить по очереди узлы(исключать поля выгрузки) может нащупаете это место тогда
Код: Выделить всё
Interface testdbf;
create view
as select
basedoc.ddoc,
basedoc.nodoc,
katorg.name,
basedoc.total,
katsopr.summa
from
basedoc
,katorg
,stepdoc
,katsopr
where
((
word(101)==basedoc.viddoc
and basedoc.nrec == stepdoc.cbasedoc
and stepdoc.nrec == katsopr.cstepdoc
and basedoc.corg == katorg.nrec
))
;
handleevent
CmInit:{
PutTableToDBF (-1,'c:\base.dbf',0);
}
end;
end.