à partir du lien de départ de Trey Jackson, il semble y avoir un tutoriel sur la façon de construire a programmatic interface for elisp to an inferior-process sqlite, par exemple sqlite-query<f>
. Il est basé sur une capture d'écran comint buffer juste à cet effet (par exemple, ne pas réutiliser sql.el). Ce qui suit est un exemple incomplet copié à partir de cette référence.
;; this is emacs lisp code
(defun sqlite-query (sql-command)
(set-buffer sqlite-output-buffer) ;1
(erase-buffer) ;2
(comint-redirect-send-command-to-process
sql-command
sqlite-output-buffer
(get-buffer-process sqlite-process-buffer) nil) ;3
(accept-process-output
(get-buffer-process sqlite-process-buffer)
1) ;need to wait to obtain results
(let* ((begin (goto-char (point-min))) ;4
(end (goto-char (point-max)))
(num-lines (count-lines begin end))
(counter 0)
(results-rows()))
(goto-char (point-min))
(while (< counter num-lines)
(setq results-rows (cons (chomp (thing-at-point 'line)) results-rows))
(forward-line)
(setq counter (+ 1 counter)))
(car `(,results-rows))))
Malheureusement, il ne ressemble pas il y a quelque chose là impromptu, mais peut-être it is a good approach et probablement mieux que d'essayer d'utiliser une autre langue intermédiaire.
(En plus, je trouve cet exemple de connexion SQLite avec l'interface GUI Widget de emacs intrigante.)
J'ai écrit un [petit emballage SQLite pour Emacs Lisp] (http://www.jasonfruit.com/ page/emacs_sqlite_and_widgets) en réponse au code ici. – JasonFruit