Обмен данными между базами Галактики.
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Мы много внедряли для корпораций (несколько баз), но все на штатной галактике и на Первасиве. Там все проще - делаете общие таблицы МЦ для всех филиалов и т.д. в самом начале внедрения и никаких проблем с синхронизацией. ну это Вам не подходит.
На ВИПе нужно написать цикл, который использует функции по работе с DBF-файлами (типа ореnDBF - см. доку по функциям). В цикле можете все проанализировать при импорте - это удобнее, чем
LOT конечно.
На ВИПе нужно написать цикл, который использует функции по работе с DBF-файлами (типа ореnDBF - см. доку по функциям). В цикле можете все проанализировать при импорте - это удобнее, чем
LOT конечно.
Просто уже набралось 35 таблиц для обмена, не хочется для каждой все поля прописывать.
Проще написать просто запрос типа:
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
Но вот можно ли составить строку запроса (как в 1С)? и как выполнить этот запрос в своем интерфейсе?
Может кто-нибудь подсказать?
Проще написать просто запрос типа:
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
Но вот можно ли составить строку запроса (как в 1С)? и как выполнить этот запрос в своем интерфейсе?
Может кто-нибудь подсказать?
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
В принципе можно попробовать через DSQL(по идее долно получится...) ,если у Вас 8,1 Галактика.hope писал(а):Просто уже набралось 35 таблиц для обмена, не хочется для каждой все поля прописывать.
Проще написать просто запрос типа:
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
Но вот можно ли составить строку запроса (как в 1С)? и как выполнить этот запрос в своем интерфейсе?
Может кто-нибудь подсказать?
Вообщем то там строка запроса как раз и собирается и отдается на выполнение sql-серверу
Галактика у нас 7.12.
Составить строку запроса - это значит сформировать запрос из нескольких строк типа "IMPORT KatOrg FROM DBF "+путь+"katorg.dbf f s n r d;"
А потом нужно выполнить этот запрос.
И еще столкнулась с такой проблемой: если таблицу выгружать в dbf через Support-SQL запросом:
SELECT *
FROM KatOrg
WHERE ((Date(01,01,2009)<<=KatOrg.ATL_LastDate))
TO DBF
;
то поля типа Date выгружаются в dbf в поле типа Date 8 (YYYYMMDD).
А если выгружаем таблицу в своем интерфейсе функцией PutTableToDBF, то поля типа Date выгружаются в dbf в поле типа Date 10 (DD/MM/YYYY).
В результате, при загрузке с помощью запроса
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
из файлов, выгруженных с помощью функции PutTableToDBF, некорректно загружаются поля с датой.
Есть оператор настройки параметров экспорта/импорта set impex txt, но он только для txt-файлов, к сожалению.
Есть какие-нибудь идеи?
Спасибо, всем откликнувшимся!!!
Составить строку запроса - это значит сформировать запрос из нескольких строк типа "IMPORT KatOrg FROM DBF "+путь+"katorg.dbf f s n r d;"
А потом нужно выполнить этот запрос.
И еще столкнулась с такой проблемой: если таблицу выгружать в dbf через Support-SQL запросом:
SELECT *
FROM KatOrg
WHERE ((Date(01,01,2009)<<=KatOrg.ATL_LastDate))
TO DBF
;
то поля типа Date выгружаются в dbf в поле типа Date 8 (YYYYMMDD).
А если выгружаем таблицу в своем интерфейсе функцией PutTableToDBF, то поля типа Date выгружаются в dbf в поле типа Date 10 (DD/MM/YYYY).
В результате, при загрузке с помощью запроса
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
из файлов, выгруженных с помощью функции PutTableToDBF, некорректно загружаются поля с датой.
Есть оператор настройки параметров экспорта/импорта set impex txt, но он только для txt-файлов, к сожалению.
Есть какие-нибудь идеи?
Спасибо, всем откликнувшимся!!!
Re: PutTableToDBF и тип Date 10 (DD/MM/YYYY)
Галактика 8.10
функцией PutTableToDBF поля типа Date выгружаются в dbf в тип Date 10 (DD/MM/YYYY).
нужен Date 8 (YYYYMMDD).
Есть какие-нибудь идеи?
функцией PutTableToDBF поля типа Date выгружаются в dbf в тип Date 10 (DD/MM/YYYY).
нужен Date 8 (YYYYMMDD).
Есть какие-нибудь идеи?
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Обмен данными между базами Галактики.
а если выгружать datetostr(date,'YYYYMMDD') ?
Re: Обмен данными между базами Галактики.
Структура таблицы определена.
Там где дата, там Date и никак в неё string не лезет.
Извернулся так:
недокументированной PutTableToDBF получаем DBF c DATE10 dd/mm/yyyy
потом DBF-функциями VIPа переводим DATE10 из dd/mm/yyyy в yyyymmdd
(DBFGetFieldValue, DBFPutFieldValue, DBFUpDateRecord )
Там где дата, там Date и никак в неё string не лезет.
Извернулся так:
недокументированной PutTableToDBF получаем DBF c DATE10 dd/mm/yyyy
потом DBF-функциями VIPа переводим DATE10 из dd/mm/yyyy в yyyymmdd
(DBFGetFieldValue, DBFPutFieldValue, DBFUpDateRecord )
Код: Выделить всё
function TranslateDate (pDateField:String ): boolean;
{
Var d_dbf: Date;
var sDate: string;
sDate:= DBFGetFieldValue(l_DBFfile, pDateField )
if inStr('/',sDate) > 1 then
{
TranslateDate := true;
d_dbf := StrToDate(sDate,'DD/MM/YYYY');
sDate := DateToStr(d_dbf,'YYYYMMDD');
DBFPutFieldValue(l_DBFfile, pDateField, sDate);
} else TranslateDate := false;
}
l_DBFfile:=DBFOpen2(pStrDBFfile, stOpen); // stOpenWrite
if l_DBFfile=0 then
{
MESSAGE('Ошибка открытия файла тел документов :'+pStrDBFfile);
stop; exit;
}
if DBFGetFirst(l_DBFfile)=tsOK
{
do
{
if TranslateDate('RegDate') then DBFUpDateRecord (l_DBFfile);
}
while DBFGetNext(l_DBFfile)=tsOK
}
DBFClose(l_DBFfile);
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Обмен данными между базами Галактики.
Почему недокументированной? Вполне документированный метод логической таблицыlStep писал(а):недокументированной PutTableToDBF