sql-set-sqli-buffer "there is no suitable sqli buffer"



我是emacs的新手,不太习惯lisp,所以这可能是一个新错误,但我找不到解决方案。

我尝试安装sql模式与我的mysql数据库交互。

为此,我修改了sql。在sql-mysql-login-params

中添加了端口,以精确指定sql-user、sql-password、sql-database、sql-server和sql-port选项。

启动emacs和M-x sql-mysql

模式更改为SQLi[MySQL]:run

myfile.sql

此缓冲区为SQL[ANSI]模式

然后我C-c - C-r一个sql语句,有错误"No sql Process started"

如前所述,我M-x sql-set-sql -buffer,但我有错误"There is no suitable SQLi buffer"

对于这个,我找不到解决办法…我错过了什么?

我使用emacs 24.2.1

编辑:当我直接在SQLi[MySQL]:run buffer中执行select语句时,它会返回预期的行…

我认为你是非常正确的,sql-set-sqli-buffer没有找到合适的SQLi缓冲区的原因是因为它在遍历打开缓冲区列表时考虑了sql模式缓冲区的产品子类型。

这是我的sql副本的缓冲区测试代码。我的emacs(版本- GNU emacs 24.2.1)

(defun sql-find-sqli-buffer (&optional product connection)
  "Returns the name of the current default SQLi buffer or nil.
In order to qualify, the SQLi buffer must be alive, be in
`sql-interactive-mode' and have a process."
  (let ((buf  sql-buffer)
        (prod (or product sql-product)))
    (or
     ;; Current sql-buffer, if there is one.
     (and (sql-buffer-live-p buf prod connection)
          buf)
     ;; Global sql-buffer
     (and (setq buf (default-value 'sql-buffer))
          (sql-buffer-live-p buf prod connection)
          buf)
     ;; Look thru each buffer
     (car (apply 'append
                 (mapcar (lambda (b)
                           (and (sql-buffer-live-p b prod connection)
                                (list (buffer-name b))))
                         (buffer-list)))))))

主要用于测试合格性的两个值是缓冲区和标识产品类型的符号。此符号作为参数传入,或者默认为sql-product的值。似乎SQL -product,除非以其他方式设置,默认为'ansi,这就是为什么你的编辑缓冲区是SQL[ansi]。

在尝试将SQLi缓冲区与查询缓冲区关联之前,您应该尝试在此缓冲区中设置产品类型(例如与M-x sql-set-product)。如果你想让默认值始终是'mysql',你可以在你的init文件中设置它,或者使用M-x customize-variable

自定义它。

sql模式在很大程度上依赖于使用正确的本地变量设置缓冲区,以便有一个工作相关的iSQL会话。

一个典型的序列,我用一个查询在另一个我已经编辑的缓冲区中启动一个iSQL缓冲区,如下所示

    切换到一个缓冲区与SQL文本在它,通过访问文件可能,或使用C-x b创建一个临时缓冲区。
  1. 将此缓冲区设置为正确的SQL类型,使用M-x sql-set-product,然后输入已知类型,例如在提示符处输入"mysql"。
  2. 点击C-c <TAB>(绑定到sql-product-interactive)切换到与此缓冲区关联的iSQL缓冲区,可能通过定位或创建新的comint进程

M-x sql-help命令的输出可能值得一读。sql模式的文档非常简单。

相关内容

  • 没有找到相关文章

最新更新