Нужно поменять Owner Name в файлах tps
Добавлено: 06 Сентябрь 2024, 22:15
Много файлов, да и ещё у клиентов. Есть какая-то идея упростить работу? Или писать тупой конвертер?
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Шаблон дольше писать, если файлов меньше полусотни. Пример: конвертер, который генерит словарь, полон глюков.
"Какой ты умный, это что-то!"finsoftrz писал(а): 12 Сентябрь 2024, 13:45 От опыта зависит. Пишешь конвертер на один файл, затем превращаешь его в шаблон.
finsoftrz писал(а): 12 Сентябрь 2024, 14:06 Задаёшь в промптах старого и нового, натравливаешь на словарь.
Код: Выделить всё
Fields.Init
sourceRec &= pFm_.File{PROP:Record}
targetRec &= pFm2_.File{PROP:Record}
LOOP F = 1 TO 999
IF WHO(targetRec,F) = '' THEN BREAK END
Fields.AddPair(WHAT(targetRec,F),WHAT(sourceRec,F))
END
! LOCK(pFM2_.File)
STREAM(pFM2_.File)
SET(pFM_.File)
Loop while pFM_.Next() = Level:Benign
CLEAR(targetRec)
Fields.AssignRightToLeft()
! ADD(pFM2_.File)
IF ~pFM2_.Insert() = Level:Benign
Message('Ошибка: '& ERRORCODE() &' : '& ERRORFILE(),'Ошибка')
BREAK
END
END
FLUSH(pFM2_.File)
! UNLOCK(pFM2_.File)
Fields.Kill
Самое сложное - правильно обрабатывать "сложные" поля. В принципе, всё можно сделать через примитивное присвоение, кроме BLOBkreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
Наваял простой пример из своего проекта, упростил (там использовались файлы odbc, memory, tps), оставил только tps.kreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
С простым присвоением были проблемы, а с BLOB не пробовал )Губин Игорь писал(а): 14 Сентябрь 2024, 15:47Самое сложное - правильно обрабатывать "сложные" поля. В принципе, всё можно сделать через примитивное присвоение, кроме BLOBkreator писал(а): 14 Сентябрь 2024, 13:39 gopstop2007, а можно поподробнее про конструкцию для копии файла. Файлов, которые нужно конвертить, порядка 300. Хотелось бы автоматизации. Шаблон писать пока не представляю как. Хотел на основе стандартного механизма для одного файла размножить на остальные.
The FieldPairsClass has the disadvantage of not handling arrays (because the FieldPairsClass relies on the ANY datatype which only accepts references to simple datatypes). See the Language Reference for more information on the ANY datatype.
И, не стал копать, но, похоже, он не обрабатывает Memo и Blob, т.е. то, что вне RecordНедостаток FieldPairsClass в том, что он не обрабатывает массивы (потому что FieldPairsClass полагается на тип данных ANY, который принимает только ссылки на простые типы данных). Подробнее о типе данных ANY см. в Справочнике по языку.