</para>
<para>
- &clsql; is based on the CommonSQL package from Xanalys, so the
- documentation that Xanalys makes available online is useful for
+ &clsql; is based on the CommonSQL package from LispWorks Ltd, so the
+ documentation that LispWorks makes available online is useful for
&clsql; as well. It is suggested that developers new to &clsql; read
their documentation as well, as any differences between CommonSQL
- and &clsql; are minor. Xanalys makes the following documents
+ and &clsql; are minor. LispWorks makes the following documents
available:
</para>
<itemizedlist>
<listitem>
<para>
- <ulink url="http://www.lispworks.com/reference/lw43/LWUG/html/lwuser-167.htm">
- <citetitle>Xanalys &lw; User Guide - The &commonsql;
+ <ulink url="http://www.lispworks.com/documentation/lw44/LWUG/html/lwuser-204.htm">
+ <citetitle>&lw; User Guide - The &commonsql;
Package
</citetitle>
</ulink>
<listitem>
<para>
- <ulink url="http://www.lispworks.com/reference/lw43/LWRM/html/lwref-383.htm">
- <citetitle>Xanalys &lw; Reference Manual - The SQL
+ <ulink url="http://www.lispworks.com/documentation/lw44/LWRM/html/lwref-424.htm">
+ <citetitle>&lw; Reference Manual - The SQL
Package</citetitle>
</ulink>
</para>
<listitem>
<para>
- <ulink url="http://www.ravenbrook.com/doc/2002/09/13/common-sql/">
+ <ulink url="http://www.lispworks.com/documentation/sql-tutorial/index.html">
<citetitle>&commonsql; Tutorial by Nick Levine</citetitle>
</ulink>
</para>
: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 ()
:type (string 100)
:initarg :name)
(presidentid
- :type integer))
+ :type integer
+ :initarg :presidentid))
(:base-table company))
</programlisting>
</para>
<programlisting>
-(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))
</programlisting>
<para>
(clsql:update-records-from-instance company1)
</programlisting>
-<para>
-Now we can set up some of the relations between employees and
-companies, and their managers. The
-<function>ADD-TO-RELATION</function> 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.
-</para>
-
-<programlisting>
-;; 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)
-</programlisting>
-
<para>
After you make any changes to an object, you have to specifically
tell &clsql; to update the &sql; database. The