代码之家  ›  专栏  ›  技术社区  ›  prosseek

SQLite和elisp?[关闭]

  •  4
  • prosseek  · 技术社区  · 14 年前

    elisp有SQLite包装吗?

    如果不是,那么调用python代码通过启动进程或其他方式控制SQLite是个好主意吗?有没有更好的方法使用elisp中的SQLite?

    2 回复  |  直到 14 年前
        1
  •  6
  •   Community c0D3l0g1c    7 年前

    Trey Jackson 建造 a programmatic interface for elisp to an inferior-process sqlite ,例如。 sqlite-query<f> . 它是基于屏幕刮削的 comint buffer 仅用于此目的(例如,不重复使用sql.el代码). 以下是从该引用复制的不完整示例。

    ;; 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))))
    

    it is a good approach 可能比尝试使用另一种中间语言要好。

    (除此之外,我发现将sqlite与emacs的WidgetGUI接口连接的例子很有趣。)

        2
  •  6
  •   Trey Jackson    14 年前

    Emacs wiki 是你的朋友,这里有几个链接指向sqlite的几个工具。

    Emacs WIki SQLite ,第一个链接可能就是您要查找的链接:处理与数据库的交互: sql-mode