Страница 1 из 1
FILE:RECORDS и кодировка UTF
Добавлено: 12 Ноябрь 2024, 11:59
gopstop2007
Код для копирования двух идентичных файлов(таблиц) из SQLite (pFm3_) в Memory (pFm_) , их много более 50-и
Код: Выделить всё
sourceRec &= pFm3_.File{PROP:Record}
targetRec &= pFm_.File{PROP:Record}
LOOP F = 1 TO 999
IF WHO(targetRec,F) = '' THEN BREAK END
Fields.AddPair(WHAT(targetRec,F),WHAT(sourceRec,F))
END
SET(pFm3_.File)
Loop while pFm3_.Next() = Level:Benign
CLEAR(targetRec)
Fields.AssignRightToLeft()
ADD(pFM_.File); IF ERRORCODE() THEN Message('Ошибка загрузки '& pFM_.GetName() &'!','Ошибка') END
END
Если возможность содержимое FILE:RECORDS преобразовать в нужную кодировку на "лету"?
Спасибо за внимание
FILE:RECORDS и кодировка UTF
Добавлено: 12 Ноябрь 2024, 12:52
Игорь Столяров
gopstop2007 писал(а): 12 Ноябрь 2024, 11:59
содержимое FILE:RECORDS преобразовать в нужную кодировку
Содержимое RECORD Вы можете преобразовать только по полям:
Т.е. что-то вроде (если я правильно понимаю Ваш скрытый код):
Код: Выделить всё
Fields.AddPair(WHAT(targetRec,F),ConvertAnsiToUTF(WHAT(sourceRec,F)))
Делаете ещё один "нативный" имитатор SQL запросов для TPS ?

FILE:RECORDS и кодировка UTF
Добавлено: 12 Ноябрь 2024, 13:14
gopstop2007
Игорь Столяров писал(а): 12 Ноябрь 2024, 12:52
gopstop2007 писал(а): 12 Ноябрь 2024, 11:59
содержимое FILE:RECORDS преобразовать в нужную кодировку
Содержимое RECORD Вы можете преобразовать только по полям:
Т.е. что-то вроде (если я правильно понимаю Ваш скрытый код):
Код: Выделить всё
Fields.AddPair(WHAT(targetRec,F),ConvertAnsiToUTF(WHAT(sourceRec,F)))
На прототипы ругается, Fields.AddPair - присваивание полей без из значений
Игорь Столяров писал(а): 12 Ноябрь 2024, 12:52
Делаете ещё один "нативный" имитатор SQL запросов для TPS ?
Решил перенести все из tps в sqlite.
FILE:RECORDS и кодировка UTF
Добавлено: 12 Ноябрь 2024, 13:33
Игорь Столяров
gopstop2007 писал(а): 12 Ноябрь 2024, 13:14
присваивание полей без из значений
Там указатели в Fields.AddPair() ... сделайте через промежуточную переменную.
Код: Выделить всё
StringTmp = ConvertAnsiToUTF(WHAT(sourceRec,F))
Fields.AddPair(WHAT(targetRec,F),StringTmp)
Не знааю, что включает в себя "всё", но учитывайте, что SQLite не поддерживает многозадачность и совместное использование ...
FILE:RECORDS и кодировка UTF
Добавлено: 12 Ноябрь 2024, 14:00
gopstop2007
Игорь Столяров писал(а): 12 Ноябрь 2024, 13:33
gopstop2007 писал(а): 12 Ноябрь 2024, 13:14
присваивание полей без из значений
Там указатели в Fields.AddPair() ... сделайте через промежуточную переменную.
Fields.AddPair(), это создание структуры виртуальных пар полей, сами значения присваиваются через
Fields.AssignRightToLeft()
Игорь Столяров писал(а): 12 Ноябрь 2024, 13:33
Код: Выделить всё
StringTmp = ConvertAnsiToUTF(WHAT(sourceRec,F))
Fields.AddPair(WHAT(targetRec,F),StringTmp)
Не знаю, что включает в себя "всё", но учитывайте, что SQLite не поддерживает многозадачность и совместное использование ...
В моем случае, это важно, если БД будет использоваться в терминальном режиме.
Поэтому когда терминальный режим, схема MYSQL -> MemoryFile
когда обычный, MYSQL -> Sqlite (раньше был TPS) -> MemoryFile