Hi all,

I've enhanced the Pharo SQLite library to be even more multilingual. It has
always supported data elements that are Pharo WideString instances, these
being converted to/from UTF8 transparently by the library. Now the library
also handles multilingual table names, column names and default column
values; in other words, multilingual SQL statements.

To install in Pharo 7, load GlorpSQLite from the Catalog Browser. 

Example:

    | db |
    db := UDBCSQLite3Connection openOn: '/tmp/ml.db'.
    [   "Chinese table name, column names, and default column value."   
        db basicExecute:  'create table 表一 (键一 integer primary key, 列二 text 
default ''中文'');'.
        "Insert a row, taking default column value for the 2nd column."
        db basicExecute: 'insert into 表一 (键一) values (NULL)'.
        "Insert another row, specifying a value in Chinese for the 2nd column."
        db execute: 'insert into 表一 values (NULL, ?)' 
                with: (Array with: '值二').
        (db execute: 'select * from 表一') rows inspect.
    ] ensure: [ db close ]

From the SQLite shell:

    % sqlite3 /tmp/ml.db 
    SQLite version 3.27.2 2019-02-25 16:06:06
    Enter ".help" for usage hints.
    sqlite> .header on
    sqlite> .schema 
    CREATE TABLE 表一 (键一 integer primary key, 列二 text default '中文');
    sqlite> select * from 表一;
    键一|列二
    1|中文
    2|值二
    sqlite> 

Testing and feedback welcome, especially on which other parts of the
library needing internationalization.

Pierce


Reply via email to