All Manuals > LispWorks® User Guide and Reference Manual > 45 The SQL Package

do-query Macro

Summary

Repeatedly binds a set of variables to the results of a query, and executes a body of code using the bound variables.

Package

sql

Signature

do-query ((&rest args) query &key database not-inside-transaction get-all) &body body

Arguments
args
A set of variables.
query
A database query or a prepared-statement containing a query.
database
A database.
not-inside-transaction
A generalized boolean.
get-all
A generalized boolean.
body
A Lisp code body.
Description

The macro do-query repeatedly executes body within a binding of args on the attributes of each record resulting from query. do-query returns no values.

The default value of database is *default-database*.

not-inside-transaction and get-all may be useful when fetching many records through a connection with database-type :mysql. Both of these arguments have default value nil. See the section 23.9.6 Special considerations for iteration functions and macros for details.

Examples

The following code repeatedly binds the result of selecting an entry in ename from the table emp to the variable name, and then prints name using the Lisp function print.

(do-query ((name) [select [ename] :from [emp]])
         (print name))
See also

Loop Extensions in Common SQL
map-query
prepare-statement
query
select
simple-do-query


LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:56