Обсуждение развития MSEide + MSEgui
Модератор: Модераторы
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Релиз-кандидат 1.2-rc1:
Новое в этой версии :
- визуальное наследование форм
- генератор отчетов, интегрированный дизайнер отчетов
- обновленный "tmsesqldb" :
= с внутренними вычисляемыми полями, локально задаваемыми индексами, хранение теста как юникод, локальной фильтрацией записей, режим "без сети" с хранением данных на локальном диске ( сравнимо с TClientDataset от Дельфей )
= кэширование BLOB-полей и изображений
= tdbevent for Firebird and PostgreSQL ( для синхронизации данных между удаленными БД клиентами )
= tsqlite3connection для подключения к Sqlite3-БД через tmsesqlquery (SQL-доступ).
- улучшенная поддержка стыкуемых форм (MDI).
Новое в этой версии :
- визуальное наследование форм
- генератор отчетов, интегрированный дизайнер отчетов
- обновленный "tmsesqldb" :
= с внутренними вычисляемыми полями, локально задаваемыми индексами, хранение теста как юникод, локальной фильтрацией записей, режим "без сети" с хранением данных на локальном диске ( сравнимо с TClientDataset от Дельфей )
= кэширование BLOB-полей и изображений
= tdbevent for Firebird and PostgreSQL ( для синхронизации данных между удаленными БД клиентами )
= tsqlite3connection для подключения к Sqlite3-БД через tmsesqlquery (SQL-доступ).
- улучшенная поддержка стыкуемых форм (MDI).
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Так это не локальная БД в чистом виде, а расширенное использование кэша выборки из удаленной БД. Да такое, что этот кэш можно построить без этой БД, просто описав FieldDefs - получаем аналог TMemDataSet. Также включает не только финальные данные, но и несохраненные изменения.
Стандартизован настолько, насколько станадартизован формат записей - то есть никак, а точнее "смотри исходники".
100% изменится, и не раз - при добавлении фишки к TMseSQLQuery.
Цены Вам не будет - если сможете "завалить" этот кэш и потом описать точные шаги. У меня давно не получалось.
Кажется, в UTF-8 ( чтобы не раздувать файл попусту ). Которую без русских букв не отличшь от ASCII.
Стандартизован настолько, насколько станадартизован формат записей - то есть никак, а точнее "смотри исходники".
И не изменится ли в дальнейшем
100% изменится, и не раз - при добавлении фишки к TMseSQLQuery.
Это на тему переноса, крушений и отладки
Цены Вам не будет - если сможете "завалить" этот кэш и потом описать точные шаги. У меня давно не получалось.
И по-моему он хранит
данные в текущей локали, а не в юникоде (или это вопрос
не к формату ?).
Кажется, в UTF-8 ( чтобы не раздувать файл попусту ). Которую без русских букв не отличшь от ASCII.
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
debi12345 писал(а):100% изменится, и не раз - при добавлении фишки к TMseSQLQuery.
Ой. А если б я его для хранения пользовательских данных выбрал ?
То есть он применим именно как кэш и никак иначе...
Теперь однозначно - текст. Тащить за программой сервер БД
слишком тяжко. Хотя может я и ошибусь.
debi12345 писал(а):Кажется, в UTF-8 ( чтобы не раздувать файл попусту ). Которую без русских букв не отличшь от ASCII.
Нет, в примере я добавил поля с русскими буквами и они в 1251 - в
моей локали (MC- F3).
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Ой. А если б я его для хранения пользовательских данных выбрал ?
То есть он применим именно как кэш и никак иначе...
Если не "падает" - никаких проблем для пользовательских данных ( но имея ввиду лимит на скорость при размерах в десятки мегабайт) ? В тестовом примере ( /contributed/../print_testcase/ ) даже картинки загружаются и выгружаются - и нет проблем.
Тащить за программой сервер БД
слишком тяжко. Хотя может я и ошибусь.
Конечно - для 100% надежности желательно БД, они под это заточены. Они и многопользовательский режим позволят, если нужно. Но не обязательно - серверный процесс. Можно обойтись TSQlite3Dataset - он у нас SQL-прозрачен. Тогда "тащить" придется только одну DLL 400КБайт, и положить ее можно будет в системный LIBPATH - одну на все программы.
Нет, в примере я добавил поля с русскими буквами и они в 1251 - в
моей локали (MC- F3).
query.controller.options.dso_utf8 смотрели ? Если есть возможность - пжалста, проверьте, одинаково ли записывается отображается русский текст в Вынь32 и в Линуксе (KOI), Ок ? С этой опцией и без.
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
Да, дело было в этой опции ! Теперь сохраняет в утф8. После
перекомпиляции и запуска старый текст на русском отсутствовал,
но заново ввёлся и сохранился без проблем в утф8.
Про формат, я имел ввиду не временное, а постоянное хранение.
Если использовать кэш файл, то при обновлении MSE эти данные станут
недоступными или испортятся.
перекомпиляции и запуска старый текст на русском отсутствовал,
но заново ввёлся и сохранился без проблем в утф8.
Про формат, я имел ввиду не временное, а постоянное хранение.
Если использовать кэш файл, то при обновлении MSE эти данные станут
недоступными или испортятся.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
то можно и 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
- Откуда: Ташкент (Узбекистан)
Чуть не забыл об одной полезной фишке - возможности фильтрации выборки (TMseSqlQuery) без перезапроса к БД - то бишь локальной фильтрации. Делается через описание обработчика события OnFilterRecord, поэтому может быть сколь угодно сложной. После смены условия фильтрации всего лишь нужно вызвать query.filterchanged.
ПС:
Мартин связался с командой FPC SQLDB по поводу импорта его наработок TClientDataset для FPC/Lazarus. Если команда разберется - возможно, нормальная ( а не лоскутная ) поддержка БД появится и в Лазарусе.
ПС:
Мартин связался с командой FPC SQLDB по поводу импорта его наработок TClientDataset для FPC/Lazarus. Если команда разберется - возможно, нормальная ( а не лоскутная ) поддержка БД появится и в Лазарусе.
- Alexander
- энтузиаст
- Сообщения: 864
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
Мартин добавил в репорт возможность включения своего фрагмента 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
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Мартин добавил в репорт возможность включения своего фрагмента PS
файла. Это сделано по просьбе участника конференции, который просил
добавить поддержку печати штрих кодов одним интересным способом:
Вау, ничего себе. Ведь PS умеет рисовать :
- что угодно графическими командами
- TrueType-шрифтами, а значит и BarCode-шрифтами
Кто сделает рабочий пример с рисованием ( не тупой печатью картинки ) баркодами в заданном месте отчета - плиз, информируйте публику !
ПС:
Жарко сейчас в ньюс-конференции. 20..30 сообщений в день, пыль столбом. Бедный Мартин...
