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

Reply via email to