Страница 3 из 3
Добавлено: 02 фев 2009, 12:14
ecasoft
Мы много внедряли для корпораций (несколько баз), но все на штатной галактике и на Первасиве. Там все проще - делаете общие таблицы МЦ для всех филиалов и т.д. в самом начале внедрения и никаких проблем с синхронизацией. ну это Вам не подходит.
На ВИПе нужно написать цикл, который использует функции по работе с DBF-файлами (типа ореnDBF - см. доку по функциям). В цикле можете все проанализировать при импорте - это удобнее, чем
LOT конечно.
Добавлено: 02 фев 2009, 13:27
hope
Просто уже набралось 35 таблиц для обмена, не хочется для каждой все поля прописывать.
Проще написать просто запрос типа:
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
Но вот можно ли составить строку запроса (как в 1С)? и как выполнить этот запрос в своем интерфейсе?
Может кто-нибудь подсказать?
Добавлено: 02 фев 2009, 13:38
Алексей
что значит "составить строку запроса" ?
можно написать лоты для выгурзки/загрузки и запускать их vip.exe батником по расписанию
Добавлено: 02 фев 2009, 13:51
Den
hope писал(а):Просто уже набралось 35 таблиц для обмена, не хочется для каждой все поля прописывать.
Проще написать просто запрос типа:
IMPORT KatOrg FROM DBF D:\Galaxy\1\katorg.dbf f s n r d;
Но вот можно ли составить строку запроса (как в 1С)? и как выполнить этот запрос в своем интерфейсе?
Может кто-нибудь подсказать?
В принципе можно попробовать через DSQL(по идее долно получится...) ,если у Вас 8,1 Галактика.
Вообщем то там строка запроса как раз и собирается и отдается на выполнение sql-серверу
Добавлено: 02 фев 2009, 16:57
hope
Галактика у нас 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-файлов, к сожалению.
Есть какие-нибудь идеи?
Спасибо, всем откликнувшимся!!!
Re: PutTableToDBF и тип Date 10 (DD/MM/YYYY)
Добавлено: 25 май 2011, 17:02
lStep
Галактика 8.10
функцией PutTableToDBF поля типа Date выгружаются в dbf в тип Date 10 (DD/MM/YYYY).
нужен Date 8 (YYYYMMDD).
Есть какие-нибудь идеи?
Re: Обмен данными между базами Галактики.
Добавлено: 26 май 2011, 06:41
Алексей
а если выгружать datetostr(date,'YYYYMMDD') ?
Re: Обмен данными между базами Галактики.
Добавлено: 26 май 2011, 13:52
lStep
Структура таблицы определена.
Там где дата, там 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);
Re: Обмен данными между базами Галактики.
Добавлено: 30 май 2011, 15:55
Vik
lStep писал(а):недокументированной PutTableToDBF
Почему недокументированной? Вполне документированный метод логической таблицы