mirror of
https://gitlab.com/eql/EQL5.git
synced 2026-01-01 23:03:02 -08:00
port of EQL/Qt4 to Qt5
This commit is contained in:
commit
0591f54ce8
339 changed files with 99935 additions and 0 deletions
57
examples/M-modules/sql/sqlite.lisp
Normal file
57
examples/M-modules/sql/sqlite.lisp
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#-qt-wrapper-functions ; see README-OPTIONAL.txt
|
||||
(load (in-home "src/lisp/all-wrappers"))
|
||||
|
||||
(in-package :eql-user)
|
||||
|
||||
(setf *break-on-errors* t)
|
||||
|
||||
(qrequire :sql)
|
||||
|
||||
(defvar *database* (|addDatabase.QSqlDatabase| "QSQLITE"))
|
||||
(defvar *table-view* (qnew "QTableView"
|
||||
"windowTitle" "sqlite"))
|
||||
|
||||
(defun populate-db ()
|
||||
(x:do-with (|exec| *database*)
|
||||
"CREATE TABLE friends ( id INT PRIMARY KEY, name VARCHAR(50), country INT )"
|
||||
"CREATE TABLE countries ( id INT PRIMARY KEY, country VARCHAR(50) )")
|
||||
(mapc (lambda (id name country)
|
||||
(|exec| *database*
|
||||
(format nil "INSERT INTO friends VALUES (~A, '~A', ~A)" id name country)))
|
||||
(list 1 2 3)
|
||||
(list "Pascal" "Valentina" "Rachel")
|
||||
(list 10 20 30))
|
||||
(mapc (lambda (id name)
|
||||
(|exec| *database*
|
||||
(format nil "INSERT INTO countries VALUES (~A, '~A')" id name)))
|
||||
(list 10 20 30)
|
||||
(list "France" "Italia" "USA")))
|
||||
|
||||
(defun ini ()
|
||||
(|setDatabaseName| *database* ":memory:")
|
||||
(if (|open| *database*)
|
||||
(progn
|
||||
(populate-db)
|
||||
(let ((model (qnew "QSqlRelationalTableModel")))
|
||||
(x:do-with model
|
||||
(|setTable| "friends")
|
||||
(|setRelation| 2 (qnew "QSqlRelation(QString...)" "countries" "id" "country"))
|
||||
(|select|))
|
||||
(x:do-with *table-view*
|
||||
(|setModel| model)
|
||||
(|setItemDelegate| (qnew "QSqlRelationalDelegate"))
|
||||
(|resizeColumnsToContents|)
|
||||
(|show|))))
|
||||
(|critical.QMessageBox| nil "EQL" (tr "Could not open database."))))
|
||||
|
||||
(defun cell-string (row column)
|
||||
(|toString| (|data| (|index| (|model| *table-view*)
|
||||
row column))))
|
||||
|
||||
(defun selected-cells ()
|
||||
(mapcar (lambda (index)
|
||||
(cons (|row| index)
|
||||
(|column| index)))
|
||||
(|selectedIndexes| (|selectionModel| *table-view*))))
|
||||
|
||||
(ini)
|
||||
Loading…
Add table
Add a link
Reference in a new issue