Benoît Minisini 4c02c6d338 ******** Merged /branches/64bits r918:1003 into /trunk
[CONFIGURATION]
* NEW: 64 bits port.

[EXAMPLES]
* BUG: Fixed the AnalogWatch example.

[WIKI CGI SCRIPT]
* NEW: Some little cosmetic changes.

[INTERPRETER]
* NEW: The extern function implementation has been redesigned and is now
  based on libffi, so that it works on 64 bits system. Because of a flaw in
  the compiler design, projects that use the Pointer datatype must be
  recompiled to be used on a 64 bits system. This flaw will be fixed in
  Gambas 3.
* OPT: Put some tables into read-only memory. About 1000 bytes are saved
  for each running interpreter, except the first one.
* BUG: Does not crash anymore if a component cannot be loaded.
* NEW: Spanish translation updated.
* NEW: A new interpreter API for returning a pointer.

[COMPILER]
* BUG: Correctly compiles LONG constants inside code.

[GB.DEBUG]
* BUG: Compiles and links the gb.debug components with the thread
  libraries.

[GB.DB.SQLITE3]
* BUG: Getting the primary index of a table without primary index is safe
  now.

[GB.GTK]
* BUG: Modified the GLib priority of watched descriptors, as the main loop 
  could enter in a loop in which user interface events were not managed.
* BUG: Message boxes use application title without crashing now.

[GB.OPENGL]
* BUG: Disable dead code.

[GB.QT.EXT]
* BUG: TextEdit.TextWidth and TextEdit.TextHeight were not declared as
  read-only properties.

[GB.XML.XSLT]
* BUG: XSLT class is now declared as being not creatable.


git-svn-id: svn://localhost/gambas/trunk@1006 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-17 21:39:26 +00:00
..
2008-01-05 14:07:21 +00:00

NG 29/12/2005 - For sqlite3 PRAGMA full_column_names is only useful
                when PRAGMA short_column_names is off. Included so
                that this will work from 3.2.1 onwards.

(Daniel Campos <danielcampos@netcourrier.com> ) - All float values has been replace
by double values, as some extra wrong decimals were added in conversions from sql data
types to Gambas data types.

Uses the STL and requires the sqliteclient library. Currently tested with
SQLite 2.8.13. from www.sqlite.org

sqlite is typeless...although in the create you can specify type details (these are
just comments!).  These types have been defined to map to gambas, those not defined
will default to string.

Database/Gambas Type : ft_String/ GB_T_STRING
DDL Value : BLOB, CHAR(, CLOB, TEXT, VARCHAR, ENUM, SET, YEAR, Non specified

Database/Gambas Type : ft_Boolean/ GB_T_BOOLEAN
DDL Value : CHAR, TINYINT, INT1, BOOL

Database Type/Gambas : ft_Short/ GB_T_INTEGER
DDL Value : SMALLINT, INT2, MEDIUMINT

Database/Gambas Type : ft_LongDouble/ GB_T_FLOAT
DDL Value : BIGINT, INT8

Database/Gambas Type : ft_Long/ GB_T_INTEGER
DDL Value : INTEGER, INT, INT4

Database/Gambas Type : ft_Float/GB_T_FLOAT
DDL Value : DECIMAL, NUMERIC, REAL, FLOAT, FLOAT8, FLOAT4

Database/Gambas Type : ft_Date/GB_T_DATE
DDL Value : TIMESTAMP, DATETIME, DATE, TIME

Database/Gambas Type : ft_Double/GB_T_FLOAT
DDL Value : DOUBLE

Thanks go to Leo Seib for his SQLiteDataset library ( sqlitedataset.sourceforge.net)
which has been the base for my hacking.

The order for locating database files is:
1) If database is fullpath qualified
2) If Host is specified as a valid path
3) If set, GAMBAS_SQLITE_DBHOME variable
4) Current working directory.

The driver will look for databases in the current working directory unless the environment
variable GAMBAS_SQLITE_DBHOME is set.

There is no concept of users within sqlite.  Access is controlled by file permissions
on the database file. 

Creates database /tmp/sqlite.db by default.  For the gambas-database-manager this will
allow functionality.

Sqlite is not case sensative on table or field names.  The implementation for Gambas is. 

Database :memory: will load only in memory