Обсуждение развития MSEide + MSEgui

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Сообщение Alexander » 29.04.2007 00:54:23

Это отличные новости !
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 833
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 30.04.2007 14:25:04

Релиз-кандидат 1.2-rc1:

Новое в этой версии :
- визуальное наследование форм
- генератор отчетов, интегрированный дизайнер отчетов
- обновленный "tmsesqldb" :
= с внутренними вычисляемыми полями, локально задаваемыми индексами, хранение теста как юникод, локальной фильтрацией записей, режим "без сети" с хранением данных на локальном диске ( сравнимо с TClientDataset от Дельфей )
= кэширование BLOB-полей и изображений
= tdbevent for Firebird and PostgreSQL ( для синхронизации данных между удаленными БД клиентами )
= tsqlite3connection для подключения к Sqlite3-БД через tmsesqlquery (SQL-доступ).
- улучшенная поддержка стыкуемых форм (MDI).
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 30.04.2007 22:18:27

А формат файла локальной БД документирован или как либо
стандартен ? (Это на тему переноса, крушений и отладки)
И не изменится ли в дальнейшем ? И по-моему он хранит
данные в текущей локали, а не в юникоде (или это вопрос
не к формату ?).
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 833
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 30.04.2007 23:34:14

Так это не локальная БД в чистом виде, а расширенное использование кэша выборки из удаленной БД. Да такое, что этот кэш можно построить без этой БД, просто описав FieldDefs - получаем аналог TMemDataSet. Также включает не только финальные данные, но и несохраненные изменения.
Стандартизован настолько, насколько станадартизован формат записей - то есть никак, а точнее "смотри исходники".
И не изменится ли в дальнейшем

100% изменится, и не раз - при добавлении фишки к TMseSQLQuery.
Это на тему переноса, крушений и отладки

Цены Вам не будет - если сможете "завалить" этот кэш и потом описать точные шаги. У меня давно не получалось.
И по-моему он хранит
данные в текущей локали, а не в юникоде (или это вопрос
не к формату ?).

Кажется, в UTF-8 ( чтобы не раздувать файл попусту ). Которую без русских букв не отличшь от ASCII.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 01.05.2007 00:03:55

debi12345 писал(а):100% изменится, и не раз - при добавлении фишки к TMseSQLQuery.


Ой. А если б я его для хранения пользовательских данных выбрал ?
То есть он применим именно как кэш и никак иначе...

Теперь однозначно - текст. Тащить за программой сервер БД
слишком тяжко. Хотя может я и ошибусь.

debi12345 писал(а):Кажется, в UTF-8 ( чтобы не раздувать файл попусту ). Которую без русских букв не отличшь от ASCII.


Нет, в примере я добавил поля с русскими буквами и они в 1251 - в
моей локали (MC- F3).
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 833
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 01.05.2007 00:40:54

Ой. А если б я его для хранения пользовательских данных выбрал ?
То есть он применим именно как кэш и никак иначе...

Если не "падает" - никаких проблем для пользовательских данных ( но имея ввиду лимит на скорость при размерах в десятки мегабайт) ? В тестовом примере ( /contributed/../print_testcase/ ) даже картинки загружаются и выгружаются - и нет проблем.

Тащить за программой сервер БД
слишком тяжко. Хотя может я и ошибусь.

Конечно - для 100% надежности желательно БД, они под это заточены. Они и многопользовательский режим позволят, если нужно. Но не обязательно - серверный процесс. Можно обойтись TSQlite3Dataset - он у нас SQL-прозрачен. Тогда "тащить" придется только одну DLL 400КБайт, и положить ее можно будет в системный LIBPATH - одну на все программы.

Нет, в примере я добавил поля с русскими буквами и они в 1251 - в
моей локали (MC- F3).

query.controller.options.dso_utf8 смотрели ? Если есть возможность - пжалста, проверьте, одинаково ли записывается отображается русский текст в Вынь32 и в Линуксе (KOI), Ок ? С этой опцией и без.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 01.05.2007 01:15:11

Да, дело было в этой опции ! Теперь сохраняет в утф8. После
перекомпиляции и запуска старый текст на русском отсутствовал,
но заново ввёлся и сохранился без проблем в утф8.

Про формат, я имел ввиду не временное, а постоянное хранение.
Если использовать кэш файл, то при обновлении MSE эти данные станут
недоступными или испортятся.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 833
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 01.05.2007 08:16:21

Если использовать кэш файл, то при обновлении MSE эти данные станут
недоступными или испортятся.

Ну, этим и MySQL грешит.
Но вообще я Мартина спрошу. Плюс - планирует ли он экспорт/импорт. Хотя ответ на 99% известен.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 » 01.05.2007 08:20:42

Но текст как хранилище записей - зачем он Вам ? Уж лучше тогда механизм StatFile. Они, эти файлы, прекрасно сохраняют не только настройки, но и данные всяких эдитов, таблиц... Причем - безо всякого кодирования. Я именно так и делаю.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Attid » 01.05.2007 10:19:17

не знаю что есть StatFile, но если совсем заморачиваться не хочется , то можно и ini использовать или аналоги (мне datafile нравится, смотреть на торру) правда фотки там сильно не похранишь, зато прост как 3 копейки =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 01.05.2007 11:02:30

то можно и ini использовать

Это и есть StatFile. Те же INI, но расширено под хранение данных. И повторюсь - вообще кодирования не требует.

Ответ Мартина :

>Подвергается ли изменениея структура локальных данных >TMseSQLQuery ( logfile ), или, другими словами - могут ли стать >бесполезными данные, ранее сохраненные в этот, из-за изменений в >коде MSEgui ?

Это формат - точная копия данных в памяти, строковые поля хранятся как UCS2, memo-поля - в текущей локали или в utf-8, если установлена опция dso_utf8. (В примере печати - именно TEXT==MEMO ! )
Я не ожидаю много изменений в этом формате, но и не исключаю.

>Или планируются некие средства экспорта/импорта - чтобы позволить >данным пережить обновление кода ? Или хуки для внешних >процедур экспорта/импорта ?

Я так не думаю. Цель локального режима - быть буфером если соединение с БД временно разорвано, и поэтому он должен быть максимально легковесным. А для реальной локальной БД у нас есть
tsqlite3connection.

>( удивительно, но это локальный режим все еще привлекателен, так >как его очень легко использовать - вместо текстового или CSV >-хранения )

Или Sqlite3. Кто-то должен разработать средство администрирования Sqlite3, оптимизированное для MSEgui и которое можно интегрировать в MSEide. Кто начнет ?

ПС:
От себя добавлю, по поводу "оптимизированное для MSEgui" - такие средства администрирования в "сети" есть, но они иногда дают несовместимый между собой формат ( потому что в SQlite3 нет жесткой типизации данных ). Реализация SQlite3 в MSEgui нацелена на формат, создаваемый родной утиллитой "sqlite3[.exe]".
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 » 07.05.2007 00:32:04

Чуть не забыл об одной полезной фишке - возможности фильтрации выборки (TMseSqlQuery) без перезапроса к БД - то бишь локальной фильтрации. Делается через описание обработчика события OnFilterRecord, поэтому может быть сколь угодно сложной. После смены условия фильтрации всего лишь нужно вызвать query.filterchanged.

ПС:
Мартин связался с командой FPC SQLDB по поводу импорта его наработок TClientDataset для FPC/Lazarus. Если команда разберется - возможно, нормальная ( а не лоскутная ) поддержка БД появится и в Лазарусе.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 08.05.2007 00:48:42

Мартин добавил в репорт возможность включения своего фрагмента PS
файла. Это сделано по просьбе участника конференции, который просил
добавить поддержку печати штрих кодов одним интересным способом:

Julio Jiménez Borreguero wrote:

Can be interesting the capability to render barcodes in the reports. You
can take a look here: http://www.terryburton.co.uk/barcodewriter/

Probably is not difficult to integrate/use it in your project (all is
postscript)

Let me know what do you think about this.


Trunk 1140 has a hook to submit user PS code. The following code draws the
attachment.
Код: Выделить всё
"
         //treport.onpreamble
procedure tbarcodere.getpreamble(const sender: tcustomreport;
               var apreamble: AnsiString);
var
stream1: ttextstream;
begin
stream1:= ttextstream.create('barcode.ps');
apreamble:= stream1.readdatastring;
stream1.free;
end;
         //tpaintbox.onpaint
procedure tbarcodere.paintbarcode(const sender: twidget;
                        const canvas: tcanvas);
begin
with tpostscriptcanvas(canvas),sender do begin
  pscommand(
   posstring(makepoint(innerclientpos.x,
           innerclientpos.y+innerclientsize.cy)) +            ' moveto (1-86074-271) (includetext) isbn barcode'+lineend);
end;
end;
"

Martin
------------------------------------------------------------------------


This is cool, now I can use this so send any postcript code (not only barcode)

I know this way to generate barcodes isn't probably the best but at now we can send barcodes until a better solution. From my point of view this is great.

Thanks a lot.


Julio
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 833
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 08.05.2007 01:06:01

Мартин добавил в репорт возможность включения своего фрагмента PS
файла. Это сделано по просьбе участника конференции, который просил
добавить поддержку печати штрих кодов одним интересным способом:

Вау, ничего себе. Ведь PS умеет рисовать :
- что угодно графическими командами
- TrueType-шрифтами, а значит и BarCode-шрифтами

Кто сделает рабочий пример с рисованием ( не тупой печатью картинки ) баркодами в заданном месте отчета - плиз, информируйте публику !

ПС:
Жарко сейчас в ньюс-конференции. 20..30 сообщений в день, пыль столбом. Бедный Мартин...
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 08.05.2007 18:40:08

debi12345 писал(а):Кто сделает рабочий пример с рисованием ( не тупой печатью картинки ) баркодами в заданном месте отчета - плиз, информируйте публику !


Кто просил поддержку ? Julio. Вот его то и потрясти. :) А то ведь сделает
втихаря и никому не покажет.

А Мартин молодец !
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 833
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Пред.След.

Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru