#1 2010-07-22 20:38:45

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,183
Website

SQLite3 Framework 1.8

The Synopse SQLite3 Database Framework was just released under Version 1.8.

SQLite3 just officially reached version 3.7.0, so it's time to commit our changes from our source code repository to the main "stable" zip.

SynCommons.pas
  - includes Unitary Testing class and functions
  - bug fixed in WinAnsiBufferToUtf8() and all WinAnsi to UTF-8 encoding
    functions (issue identified thanks to new _UTF8 testing function)
  - bug fixed in val() under Delphi 2009/2010 for some values (issue identified
    thanks to new NumericalConversion testing function)
  - bug fixed in AnsiICompW() - used in SynPdf unit
  - ambiguous SameText() function rewritten as SameTextU() with UTF-8 decoding
  - TTextWriter class moved from SQLite3Commons to SynCommons
  - new JSONEncode and JSONDecode functions to directly encode or decode any
    content to/from a valid UTF-8 JSON object content
  - enhanced URLEncode() and URLDecode() functions
  - new ExtendedToStr/ExtendedToString functions
  - new tests added (mostly relative to the new functions or classes)

SynCrypto.pas
   - mostly code review for Delphi 2009/2010 integration

SynGdiPlus.pas
   - small modifications to better handling Jpeg saving

SynPdf.pas
  - font substitution if the font is not existing in the system (worse case
    will use Arial for all fonts)
  - now handle ETO_GLYPH_INDEX in metafile rendering
  - new feature: allow forced JPEG compression for graphics
  - new feature: UNDERLINE + STRIKEOUT support (also in RICH TEXT and rotated text !)
  - new USE_SYNGDIPLUS conditional if you want to use the default jpeg unit
    instead of our SynGdiPlus (but you loose TIF, PNG, and GIF support)
  - enhanced: PenWidth changed to Single -> better precision (e.g. for underlined text)
  - fix issue: Rotated text was misplaced for some angles
  - some small fixes about FillRect() + scaling, and move/line stroke
  - REDDWARF / ONDREJ made a very good work - I had very few thinks to rewrite
     see http://synopse.info/forum/viewtopic.php?id=36
  - added optional XOff,YOff parameters to RenderMetaFile()
  - now handle EMR_STRETCHDIBITS (used in Html2Pdf)
  - fix strike out line position (was too low)
  - fixed TextWidth() and TextMeasure()
  - fixed font enumeration problem (trigerred with asiatic windows)
  - system font enumeration is now stored using UTF-8, and any non ASCII font
    name will used in the PDF content the official Postscript name extracted
    from its TrueType font content
  - optional charset parameter is now available in TPdfCanvas.SetFont: this
    was needed in case of TMetaFile rendering to fix some encoding problems
  - bitmap embedding fix - see http://synopse.info/forum/viewtopic.php?pid=237
  - now initializes the Gdi+ library if necessary
  - fix small issue with font orientation in metafile enumaration

SynSelfTests.pas
  - first public release, corresponding to SQLite3 Framework 1.8
  - includes Unitary Testing class and functions

SQLite3Commons.pas
    - includes Unitary Testing class and functions
    - update engine to version 3.7
    - new direct methods to handle BLOB fields from clients or servers
    - new URI to GET or PUT BLOB fields: ModelRoot/TableName/ID/BlobFieldName
    - fixed bug in TSQLTable.GetJSONValues: FirstRow parameter not used
    - TTextWriter class moved from SQLite3Commons to SynCommons
    - new ModelRoot/[TableName/ID/]MethodName RESTful GET/PUT request
     (see TSQLRestServerCallBack definition and comments): implements some custom
     Client/Server request, similar to the DataSnap technology, but in a KISS way;
     it's fully integrated in the Client/Server architecture of our framework,
     and extend its ORM feature to Object-less communication - see new
     ModelRoot/Stat method implement in TSQLRestServer
     cf. http://synopse.info/forum/viewtopic.php?id=60
    - floating point numbers are now encoded using new ExtendedStr[ing] methods:
     such values are now encoded in a more human readable way in the JSON content
    - new tests added (mostly relative to the new functions or classes)

SQLite3.pas
    - includes Unitary Testing class and functions
    - update engine to version 3.7
    - SetWALMode() method for enabling Write-Ahead Logging for the database
    - the RTREE extension is now compiled by default into the engine
    - new tests added (mostly relative to the new functions or classes)

SQLite3HttpServer.pas
        - includes Unitary Testing class and functions
        - allows content-type changing for GET blob fields

SQLite3Pages.pas
  - some fixes for compilation under Delphi 2009/2010

SQLite3Toolbar.pas
    - possibility to add a background picture to the ribbon pages
     (creating a TSQLAdvPage class from TAdvPage with a BackgroundPicture property)

SQLite3UI.pas
    - added TSynIntegerLabeledEdit component (e.g. used in SQLite3UIOptions)

Don't forget to take a look at our draft documentation of our framework!

The full source code from the framework is available to download from SynopseSQLite3.zip licensed under a MPL/GPL/LGPL tri-license.
Compatible with Delphi 7 to Delphi 2010.

Offline

#2 2010-07-23 08:45:38

array81
Member
From: Italy
Registered: 2010-07-23
Posts: 411

Re: SQLite3 Framework 1.8

SQLite3 Framework is powerful but also complex. It is possible add a big demo application that show all the main features (simple and complex features), for example retrive data from database (simple table or complex SQL query), retrieve Image, ... In alternative also many small demo are good (one demo for feature).
I think many people (like me) would use your framework but cannot do it because there is dnot a full demo (full demo is better that documentation if you are not a professional developer).

Do you think this is possible?

Thanks

Offline

#3 2010-07-23 09:17:35

longge007
Member
Registered: 2010-06-22
Posts: 107

Re: SQLite3 Framework 1.8

wait for days ,i can write one example about what i know for this Framework

Offline

#4 2010-07-23 10:05:03

array81
Member
From: Italy
Registered: 2010-07-23
Posts: 411

Re: SQLite3 Framework 1.8

This sound good. So I'm waiting your demo until the Administrator won't release an official big demo smile

Thanks

Offline

#5 2010-07-23 13:01:58

longge007
Member
Registered: 2010-06-22
Posts: 107

Re: SQLite3 Framework 1.8

array81 wrote:

This sound good. So I'm waiting your demo until the Administrator won't release an official big demo smile

Thanks

study together

Offline

#6 2010-07-24 17:10:35

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,183
Website

Re: SQLite3 Framework 1.8

I'm working on a demo, with User Interface and all....

It'll show how all units of this framework work together.

The only drawback is that it will depend on some external expensive components for the Ribbon interface (from TMS). But you'll have my part of the source code, and an executable version to guess about the result.

Offline

#7 2010-07-25 10:53:33

Mohammed Nasman
Member
From: Palestine
Registered: 2010-07-05
Posts: 5
Website

Re: SQLite3 Framework 1.8

ab wrote:

I'm working on a demo, with User Interface and all....

Great,

I'm looking forward to see it soon.

I have asked before for a demo similar to MasterApp that included with Delphi for BDE.

because I find it hard for me to get used with your framework, without proper documentation and Demos

Offline

#8 2010-07-26 17:32:15

array81
Member
From: Italy
Registered: 2010-07-23
Posts: 411

Re: SQLite3 Framework 1.8

This sound good. Do you have a date for it?

Another question why you have used TMS components?

Thanks again.

Offline

#9 2010-07-27 07:40:35

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,183
Website

Re: SQLite3 Framework 1.8

I'll release a first version on next friday, I suppose.

Here is a screenshot of the application layout:
synfilebeta.png

This application is just a database tool which store text content and files into the database, in both clear and safe manner. Safe records are stored using AES-256/SHA-256 encryption.
There is an Audit Trail table for tracking the changes.

We used TMS components for the User ribbon interface. They are not so well written (from the code point of view: TMS source has a lot of code duplication, and don't use RTTI as it should) but they do work well, and the final result on screen is very good, which was the key point for our customer.

The ribbon component shipped with Delphi 2009 was buggy, and our managers didn't want to go to this compiler version with a sensitive application like the one we were working for (a medical application). Delphi 7 was just fine for our projects, since our framework is natively UTF-8, so unicode ready, even on Delphi 7.

The ribbon in Delphi 2010 seems smooth enough to be used in production. It could be used instead.

In all cases, I want to make the option of using pure Delphi components for creating the user interface. But for a first main demo, you can even use the trail version of the TMS components to compile the sources.

Offline

#10 2010-07-28 09:20:25

array81
Member
From: Italy
Registered: 2010-07-23
Posts: 411

Re: SQLite3 Framework 1.8

OK. I understand, so I'm waiting for your demo this friday. Thanks

Offline

#11 2010-07-31 18:22:25

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,183
Website

Re: SQLite3 Framework 1.8

The SQLite3 MainDemo source code has just been uploaded to the repository
see http://synopse.info/forum/viewtopic.php?id=77

Offline

Board footer

Powered by FluxBB