<sect2>
<title>Initialization</title>
<para>Use
- <programlisting>(mk:load-system :clsql-mysql)</programlisting>
+ <screen>(mk:load-system :clsql-mysql)</screen>
to load the MySQL back-end. The database type for the MySQL
back-end is <symbol>:mysql</symbol>.</para>
</sect2>
<sect2>
<title>Initialization</title>
<para>Use
- <programlisting>(mk:load-system :clsql-postgresql)</programlisting>
+ <screen>(mk:load-system :clsql-postgresql)</screen>
to load the PostgreSQL back-end. The database type for the
PostgreSQL back-end is <symbol>:postgresql</symbol>.</para>
</sect2>
<sect2>
<title>Initialization</title>
<para>Use
- <programlisting>(mk:load-system :clsql-postgresql-socket)</programlisting>
+ <screen>(mk:load-system :clsql-postgresql-socket)</screen>
to load the PostgreSQL Socket back-end. The database type for the
PostgreSQL Socket back-end is
<symbol>:postgresql-socket</symbol>.</para>
<sect2>
<title>Initialization</title>
<para>Use
- <programlisting>(mk:load-system :clsql-aodbc)</programlisting>
+ <screen>(mk:load-system :clsql-aodbc)</screen>
to load the MySQL back-end. The database type for the AODBC
back-end is <symbol>:aodbc</symbol>.</para>
</sect2>
<title>Ensure &asdf; is loaded</title>
<para>
Simply load the file <filename>asdf.lisp</filename>.
- <programlisting>
+ <screen>
(load "asdf.lisp")
- </programlisting>
+ </screen>
</para>
</sect2>
linking on Linux. If you are using FreeBSD or Solaris, you will need
to change the linker setting as instructed in the Makefile.
Then, you can give the command
- <programlisting>
+ <screen>
make libs
- </programlisting>
+ </screen>
in the root directory of &clsql; to build the libraries
<filename>interfaces/mysql/clsql-mysql.so</filename>
and <filename>interfaces/clsql-uffi/clsql-uffi.so</filename>.
The following example code assumes the &uffi; files reside in the
<filename>/usr/share/lisp/uffi/</filename>
directory.
- <programlisting>
+ <screen>
(push #P"/usr/share/lisp/uffi/" asdf:*central-registry*)
(asdf:oos 'asdf:load-op :uffi)
- </programlisting>
+ </screen>
</para>
</sect2>
<sect2>
The following example code assumes the cl-md5 files reside in the
<filename>/usr/share/lisp/cl-md5/</filename>
directory.
- <programlisting>
+ <screen>
(push #P"/usr/share/lisp/cl-md5/" asdf:*central-registry*)
(asdf:oos 'asdf:load-op :md5)
- </programlisting>
+ </screen>
</para>
</sect2>
<filename>/usr/share/lisp/clsql/</filename>
directory. You need to load, at a minimum,
the main <symbol>:clsql</symbol> system and at least one interface system.
- <programlisting>
+ <screen>
(push #P"/usr/share/lisp/clsql/" asdf:*central-repository*)
(asdf:operate 'asdf:load-op 'clsql-base) ; base clsql package
(asdf:operate 'asdf:load-op 'clsql-mysql) ; MySQL interface
(asdf:operate 'asdf:load-op 'clsql-postgresql-socket) ; Socket PGSQL interface
(asdf:operate 'asdf:load-op 'clsql-aodbc) ; Allegro ODBC interface
(asdf:operate 'asdf:load-op 'clsql) ; main clsql package
- </programlisting>
+ </screen>
</para>
</sect2>
in the <filename>tests/tests.lisp</filename> file in the &clsql;
source directory. After creating that file, you can run the test suite
with &asdf;:
- <programlisting>
+ <screen>
(asdf:operate 'asdf:test-op 'clsql)
- </programlisting>. .
+ </screen>
</para>
</sect2>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(setf *default-database-type* :mysql)
=> :mysql
(initialize-database-type)
=> t
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Affected By</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(setf *default-database-type* :mysql)
=> :mysql
(initialize-database-type)
=> t
*initialized-database-types*
=> (:MYSQL)
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Affected By</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
*initialized-database-types*
=> NIL
(setf *default-database-type* :mysql)
=> T
*initialized-database-types*
=> (:MYSQL)
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(connected-databases)
=> NIL
(connect '(nil "template1" "dent" nil) :database-type :postgresql)
=> T
(connected-databases)
=> NIL
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(connected-databases)
=> NIL
(connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
=> NIL
(connected-databases)
=> NIL
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Affected By</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(database-name-from-spec '("dent" "newesim" "dent" "dent") :mysql)
=> "dent/newesim/dent"
(connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
(database-name-from-spec '("www.pmsf.de" "template1" "dent" nil) :postgresql)
=> "www.pmsf.de/template1/dent"
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(database-name-from-spec '("dent" "newesim" "dent" "dent") :mysql)
=> "dent/newesim/dent"
(connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
=> NIL
(find-database **)
=> #<CLSQL-POSTGRESQL:POSTGRESQL-DATABASE {48392D2D}>
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(database-name-from-spec '("dent" "newesim" "dent" "dent") :mysql)
=> "dent/newesim/dent"
(connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
>> (SETQ RESULT OLD-DB)))
>> 0] 0
=> #<CLSQL-MYSQL:MYSQL-DATABASE {480451F5}>
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(disconnect :database (find-database "dent/newesim/dent"))
=> T
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(disconnect-pool)
=> T
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(database-name-from-spec '("dent" "newesim" "dent" "dent") :mysql)
=> "dent/newesim/dent"
(connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
=> NIL
(find-database **)
=> #<CLSQL-POSTGRESQL:POSTGRESQL-DATABASE {48392D2D}>
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(execute-command "create table eventlog (time char(30),event char(70))")
=> T
(execute-command "drop table eventlog")
=> T
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(execute-command "create table simple (name char(50), salary numeric(10,2))")
=> T
(execute-command "insert into simple values ('Mai, Pierre',10000)")
;; MySQL-specific:
(query "show tables")
=> (("demo") ("log") ("newlog") ("simple") ("spacetrial"))
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(map-query 'list #'(lambda (salary name)
(declare (ignorable name))
(read-from-string salary))
list))
=> NIL
=> (("Hacker, Random J." . 8000.5) ("Mai, Pierre" . 10000.0))
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(do-query ((salary name) "select salary,name from simple")
(format t "~30A gets $~2,5$~%" name (read-from-string salary)))
>> Mai, Pierre gets $10000.00
(do-query ((salary name) "select salary,name from simple")
(return (cons salary name)))
=> ("10000.00" . "Mai, Pierre")
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>
</refsect1>
<refsect1>
<title>Examples</title>
- <programlisting>
+ <screen>
(defvar *my-db* (connect '("dent" "newesim" "dent" "dent"))
"My database"
=> *MY-DB*
>> CLOS Benchmark entry => 32000
=> #<EQUAL hash table, 3 entries {48350A1D}>
=> #<EQUAL hash table, 5 entries {48350FCD}>
- </programlisting>
+ </screen>
</refsect1>
<refsect1>
<title>Side Effects</title>