Set the values of the variables in a prepared-statement and execute or query it.
sql
prepared-statement-set-and-execute prepared-statement &rest values
prepared-statement-set-and-execute* prepared-statement values &key database
prepared-statement-set-and-query prepared-statement &rest values => result-list, field-names
prepared-statement-set-and-query* prepared-statement values &key database => result-list, field-names
| prepared-statement⇩ | |
| values⇩ |
A list. |
| database⇩ |
A database or nil. |
| result-list, field-names | |
|
The results of query. | |
The functions prepared-statement-set-and-execute, prepared-statement-set-and-execute*, prepared-statement-set-and-query and prepared-statement-set-and-query* set the variables of a prepared-statement and then execute or query using it. They first call set-prepared-statement-variables, passing it prepared-statement and values, and for prepared-statement-set-and-execute* and prepared-statement-set-and-query* also database, and then call either execute-command (prepared-statement-set-and-execute and prepared-statement-set-and-execute*) or query (prepared-statement-set-and-query and prepared-statement-set-and-query*). The latter two return the result of the call to query.
The following code shows insertion of multiple records using a prepared statement and prepared-statement-set-and-execute.
(progn
(when (sql:table-exists-p "a_table_of_squares")
(sql:drop-table "a_table_of_squares"))
(sql:execute-command "create table a_table_of_squares (num integer, square_of_num integer)")
(sql:with-prepared-statement (ps "insert into a_table_of_squares values (:1, :2)")
(dotimes (x 10)
(sql:prepared-statement-set-and-execute ps x (* x x))))
;; check it
(pprint (sql:query "select * from a_table_of_squares")))
prepare-statement
set-prepared-statement-variables
with-prepared-statement
execute-command
query
LispWorks® User Guide and Reference Manual - 18 Feb 2025 15:32:41