Страница 1 из 1

Мемо поля - чтение/запись через функции.

Добавлено: 11 ноя 2008, 17:37
Алексей
Давно, чтобы добавить что-то в мемо-поле программно, выгружал его в текстовый файл, потом дописывал в конец в текстовый файл строчку и загружал его обратно в мемо-поле.

С тех пор не работал с ними, но вот понадобилось.

Может быть появились функции чтения/записей мемо-полей напрямую?

Необходима возможность периодически дописывать строки вконец мемо-поля. (типа журнала).

Добавлено: 11 ноя 2008, 18:04
Den
Тоже не встречал ничего нового...
Только выгружать в текстовой файл существующие данные необязательно, если 3-й параметр ImportFileToMemo true. То бишь просто дописываешь что тебе нужно и все.

Re: Мемо поля - чтение/запись через функции.

Добавлено: 05 авг 2011, 12:21
Алексей
и снова мемо-поля! :) храню xls файлы в мемо-полях, но необходимо чтобы пользователь зашел в этот файл по даблклику мыши и внес изменения в файл. потом нажимает сохранить файл, закрывает. входит повторно - изменения в файле не сохранились. есть какой-нибудь решение позволяющее оставить внесенные изменения в эксель файле, живущем в мемо-поле?

Re: Мемо поля - чтение/запись через функции.

Добавлено: 05 авг 2011, 12:53
n0where
Сохранить в файл, импорт из файла

Re: Мемо поля - чтение/запись через функции.

Добавлено: 05 авг 2011, 13:23
Алексей
каким образом? есть интерфейс, у него выведено мемо-поле. пользователь заходит в файл правит жмет сохранить и закрывает. в каком момент ловить и записывать а главное откуда? файл в же в темп открывается. вроде бы раньше сохраненные изменения в экселе сохранялись с мемо-поле... 5.4.35 атлантис.

Re: Мемо поля - чтение/запись через функции.

Добавлено: 05 авг 2011, 13:58
Semi-bit
Я вот так выцеплял мемо-поле:

Код: Выделить всё

   select mem.MemoData
    FROM gal.indent ind
    LEFT OUTER JOIN gal.sys#memo mem
          ON ind.fInfo = mem.id
Потом перекодировал его в виндовую кодировку, и отображал.
Чтобы закинуть изменённый документ в базу, надо отловить событие его изменения. В Галактике это сделать проблематично, но на помощь приходит распрекрасный и замечательный Visual Basic! Создайте в нём макрос, повесьте его на Ctrl+S, сделайте ссылку проекта на ADODB и напишите примерно следующее:

Код: Выделить всё

Sub MySaveMemo()
    ActiveDocument.Save 'обновление документа на диске
    Dim Qry As ADODB.Query
    Qry.ConnectionString = "строка соединения"
    Qry.CommandText = "update gal.sys#memo set <назначения> where id = " & Cells(1,1)
    Qry.Execute
End Sub
 
В приведённом примере значение mem.id берётся из верхней левой ячейки документа, но можно поместить его в любую другую, чтоб не маячило перед глазами. При распаковке документа можно просто обновлять значение id в этой ячейке.
P.S. Можно сделать и не через ADODB, через запросы самого документа, но мне такой способ не очень нравится

Re: Мемо поля - чтение/запись через функции.

Добавлено: 09 авг 2011, 06:15
Алексей
это всё хорошо, но к чему изобретать велосипед? Это работало штатными средствами... у кого галактика обновлена, проверьте пожалуйста, работает сохранение изменений в эксель файле?

Re: Мемо поля - чтение/запись через функции.

Добавлено: 12 авг 2011, 09:33
Алексей
Ответ из ТП:
Подобная проблема решилась в Атлантисе 5.4.36
Номер ПИР 103.5101 "На SQL Server 2000 не получается модифицировать мемо-поле, если таблица журналируется."
Инструкция по настройке: "Выполнить проверку БД в режиме исправления с параметром "Проверка корректности триггеров" (ChkBase.Triggers=on)."

я попробовал на 5.4.37 - у нас не получилось, попробуйте кто нибудь ещё плиз, чтобы знать на кого бочку катить, на нашего админа или на ТП.

Re: Мемо поля - чтение/запись через функции.

Добавлено: 15 авг 2011, 09:35
Semi-bit
ТП писал(а):Подобная проблема решилась в Атлантисе 5.4.36
Алексей писал(а):я попробовал на 5.4.37 - у нас не получилось
Похоже, опять поломали :)

Re: Мемо поля - чтение/запись через функции.

Добавлено: 19 авг 2011, 13:53
Алексей
Мне не верят, ответ ТП:
Подробнее опишите проблему, откуда Вы открываете документ, как сохраняете. Желательно скриншоты или видеоролик.
Нужна информация какая версия ОС установлена на сервере и версия Microsoft SQL Server (версия с SP).

Под всеми пользователями такая ошибка возникает? Без пользовательских ресурсов ошибка повторяется?

Пришлите сводный отчет. Корректна система в Патчменеджере?
у кого нибудь есть MSSQL атлантис 5.4.37. Попробуйте в любое мемо-поле сохранить эксель файл. потом открыть его двойным мышкой в мемо-поле, там поправить, нажать сохранить и закрыть. открыть заново. изменения сохранятся? спасибо.

Re: Мемо поля - чтение/запись через функции.

Добавлено: 24 авг 2011, 06:36
Алексей
Выяснилось следующее: карточка объекта ремонта, вкладка документы. создаем новый документ, в мемо-поле пишем эксель файл.
выходим. заходит пользователь, вкладка документы и видит в мемо-поле эксель. жмет два раза мышкой - правит сохраняет выходит - ничего не сохранилось. НО если нажать на позиции документа ф4 - то мы как бы проваливаемся в редактирование документа. и вот если там уже нажать 2 раза мышкой и провалится в эксель, то изменения внесённые в файл сохраняются.

плохо что в открытом экселе не видно как он открывался, на редактирование или нет.

Re: Мемо поля - чтение/запись через функции.

Добавлено: 24 авг 2011, 14:45
Semi-bit
Алексей писал(а):плохо что в открытом экселе не видно как он открывался, на редактирование или нет.
Докомпилируйте интерфейс, что ли, и сделайте по cmDefault вызов cmEdit... Должно помочь.

Re: Мемо поля - чтение/запись через функции.

Добавлено: 25 авг 2011, 06:57
Алексей
тогда уж свойство протект у мемо-поля снять будет достаточным. ну, куда копать понятно...