On Mon, 22 Jun 2015, aradeonas wrote:
Vary good. Please let me know when it ready.
I committed the example, it's called 'createsql'. It's about 200 lines of code. It should work with all supported database types. Examples: home: >./createsql -h Usage: /home/michael/FPC/trunk/packages/fcl-db/examples/createsql [options] Where options is one or more of: -h --help this help message -c --connection-type=ctype Set connection type (required) -d --database=db database connection name (required) -s --sql=sql SQL to execute (optional) -t --table=tablename tablename to use for statement (required) -y --type=stype Statement type (required) one of ddl, select, insert, update, delete) -k --keyfields=fields Comma-separated list of key fields (required for delete, update, optional for select,ddl) -u --user=username User name to connect to database -p --password=password Password of user to connect to database with Where ctype is one of : firebird mysql 4.0 mysql 4.1 mysql 5.0 odbc oracle postgresql sqlite3 home: >./createsql -c firebird -d localhost:/home/firebird/timetrack.fb -u NNN -p PPP -t PROJECT -y update -k PJ_ID UPDATE PROJECT SET PJ_ID = :PJ_ID, PJ_NAME = :PJ_NAME WHERE (PJ_ID = :OLDPJ_ID) home: >./createsql -c firebird -d localhost:/home/firebird/timetrack.fb -u NNN -p PPP -t PROJECT -y INSERT -k PJ_ID INSERT INTO PROJECT (PJ_ID, PJ_NAME) VALUES (:PJ_ID, :PJ_NAME) home: >./createsql -c firebird -d localhost:/home/firebird/timetrack.fb -u NNN -p PPP -t PROJECT -y select -k PJ_ID SELECT PJ_ID, PJ_NAME FROM PROJECT WHERE (PJ_ID = :PJ_ID) home: >./createsql -c firebird -d localhost:/home/firebird/timetrack.fb -u NNN -p PPP -t PROJECT -y delete -k PJ_ID DELETE FROM PROJECT WHERE (PJ_ID = :OLDPJ_ID) home: >./createsql -c firebird -d localhost:/home/firebird/timetrack.fb -u NNN -p PPP -t PROJECT -y ddl -k PJ_ID CREATE TABLE PROJECT ( PJ_ID VARCHAR(36) NOT NULL, PJ_NAME VARCHAR(30) NOT NULL, CONSTRAINT PROJECT_PK PRIMARY KEY (PJ_ID) ) The SQL code generator has some more options to control how the SQL is generated, but I didn't implement those. Hope this helps. Michael. -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
