X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fcsql.xml;h=284de249342ffdf05aff263f9b1fc574f8bddc2d;hb=dfddee2b4dcdd570ba35122076f35a1aa7516c89;hp=d0d09fa4c76caaa7efab2ccecd36dd4d1a59eac1;hpb=595658021ebaf450894bb143a346e409b55e02af;p=clsql.git
diff --git a/doc/csql.xml b/doc/csql.xml
index d0d09fa..284de24 100644
--- a/doc/csql.xml
+++ b/doc/csql.xml
@@ -135,20 +135,16 @@
-CREATE TABLE EMPLOYEE (
- emplid NOT NULL number(38),
- first_name NOT NULL varchar2(30),
- last_name NOT NULL varchar2(30),
- emall varchar2(100),
- companyid NOT NULL number(38),
- managerid number(38)
-)
-
-CREATE TABLE COMPANY (
- companyid NOT NULL number(38),
- name NOT NULL varchar2(100),
- presidentid NOT NULL number(38)
-)
+CREATE TABLE EMPLOYEE ( emplid NOT NULL number(38),
+ first_name NOT NULL varchar2(30),
+ last_name NOT NULL varchar2(30),
+ email varchar2(100),
+ companyid NOT NULL number(38),
+ managerid number(38))
+
+CREATE TABLE COMPANY ( companyid NOT NULL number(38),
+ name NOT NULL varchar2(100),
+ presidentid NOT NULL number(38))
@@ -181,15 +177,17 @@ mapped into a database). They would be defined as follows:
:nulls-ok t
:initarg :email)
(companyid
- :type integer)
+ :type integer
+ :initarg :companyid)
(managerid
:type integer
- :nulls-ok t))
+ :nulls-ok t
+ :initarg :managerid))
(:base-table employee))
(clsql:def-view-class company ()
((companyid
- :db-type :key
+ :db-kind :key
:db-constraints :not-null
:type integer
:initarg :companyid)
@@ -197,7 +195,8 @@ mapped into a database). They would be defined as follows:
:type (string 100)
:initarg :name)
(presidentid
- :type integer))
+ :type integer
+ :initarg :presidentid))
(:base-table company))
@@ -251,16 +250,14 @@ mapped into a database). They would be defined as follows:
- :db-type - A string which will be used as the
+ :column- - A string which will be used as the
type specifier for this slots column definition in the database.
- :nulls-ok - If &t;, all &sql; &null; values
- retrieved from the database become nil; if &nil;, all &null;
- values retrieved are converted by
- DATABASE-NULL-VALUE.
+ :void-value - The Lisp value to return if the
+ field is &null;. The default is &nil;.
@@ -303,7 +300,7 @@ mapped into a database). They would be defined as follows:
In an &sql; only application, the EMPLOYEE and
COMPANY tables can be queried to determine things
-like, "Who is Vladamir's manager?", What company does Josef work
+like, "Who is Vladamir's manager?", "What company does Josef work
for?", and "What employees work for Widgets Inc.". This is done by
joining tables with an &sql; query.
@@ -469,7 +466,7 @@ first need to create our tables in the database:
-Note: the file doc/clsql-tutorial.lisp contains
+Note: the file examples/clsql-tutorial.lisp contains
view class definitions which you can load into your list at this point
in order to play along at home.
@@ -485,22 +482,25 @@ any other CLOS object:
-(defvar employee1 (make-instance 'employee
- :emplid 1
- :first-name "Vladamir"
- :last-name "Lenin"
- :email "lenin@soviet.org"))
-
(defvar company1 (make-instance 'company
:companyid 1
+ :presidentid 1
:name "Widgets Inc."))
+(defvar employee1 (make-instance 'employee
+ :emplid 1
+ :first-name "Vladamir"
+ :last-name "Lenin"
+ :email "lenin@soviet.org"
+ :companyid 1))
(defvar employee2 (make-instance 'employee
:emplid 2
:first-name "Josef"
:last-name "Stalin"
- :email "stalin@soviet.org"))
+ :email "stalin@soviet.org"
+ :companyid 1
+ :managerid 1))
@@ -514,26 +514,6 @@ In order to insert an objects into the database we use the
(clsql:update-records-from-instance company1)
-
-Now we can set up some of the relations between employees and
-companies, and their managers. The
-ADD-TO-RELATION method provides us with an easy
-way of doing that. It will update both the relation slot, as well as
-the home-key and foreign-key slots in both objects in the relation.
-
-
-
-;; Lenin manages Stalin (for now)
-(clsql:add-to-relation employee2 'manager employee1)
-
-;; Lenin and Stalin both work for Widgets Inc.
-(clsql:add-to-relation company1 'employees employee1)
-(clsql:add-to-relation company1 'employees employee2)
-
-;; Lenin is president of Widgets Inc.
-(clsql:add-to-relation company1 'president employee1)
-
-
After you make any changes to an object, you have to specifically
tell &clsql; to update the &sql; database. The