Если пользователи во время выполнения редактируют данные управления расширенным текстом, как сохранить вывод RTF в базу данных в Powerbuilder - PullRequest
1 голос
/ 31 июля 2009

Если какое-либо форматирование выполняется во время выполнения в формате richtext, как сохранить его в базе данных в PowerBuilder. Возможно ли это сделать?

Ответы [ 2 ]

3 голосов
/ 01 августа 2009

С помощью PB11.5 вы можете создать столбец DataWindow с типом редактирования richtext и сделать это так же, как любые другие данные в DataWindow.

До 11.5 вы должны сохранить документ во временном каталоге, прочитать файл в BLOB-объект UPDATEBLOB, а затем удалить файл. У меня нет рабочего кода, и я не хочу бросать что-то здесь с ног на голову и предположить, что это будет работать, поэтому вот несколько кусочков, которые помогут вам собрать свои собственные:

Прототипы внешних функций временного каталога / файла (я предоставил версии Unicode, но вы не упомянули, в какой версии вы находитесь)

Function ulong GetTempPath (ulong nBufferLength, ref string lpBuffer) library "KERNEL32.DLL" Alias for "GetTempPathW"

Function uint GetTempFileName (ref string lpPathName, ref string lpPrefixString, uint uUnique, ref string lpTempFileName) Library "KERNEL32.DLL"  Alias for "GetTempFileNameW"

rte.SaveDocument (имя файла {, тип файла {, кодировка}})

FileOpen ()

FileReadEx ()

FileClose ()

UPDATEBLOB

FileDelete ()

Удачи,

Терри

0 голосов
/ 21 августа 2009

Вы можете использовать функцию CopyRTF, чтобы получить источник текста RTF, выбранного в данный момент, включая все форматирование RTF. Затем вы можете сохранить исходный RTF-источник в виде строки в вашей БД. Точно так же вы можете использовать PasteRTF для передачи необработанного источника RTF в элемент управления редактирования RTF.

...