【问题标题】:How do I connect to SQL Server using Emacs?如何使用 Emacs 连接到 SQL Server?
【发布时间】:2008-11-18 17:40:00
【问题描述】:

我要采取哪些步骤?在使用 Emacs 时,有任何需要注意的问题或增强特定于 SQL Server 的 IDE 体验的提示吗?

【问题讨论】:

    标签: sql-server emacs ide database-connection sql-mode


    【解决方案1】:

    正在连接

    从 Emacs 连接到 SQL Server 数据库实例:

    M-x sql-ms RET
    M-x sql-mode     
    

    系统将提示您输入标准连接信息,具体如下:

    • 用户
    • 密码
    • 服务器
    • 数据库

    对于 SQL Server 身份验证,输入必要的用户和密码信息。但是,如果通过 Windows 身份验证连接,则用户和密码都按 RETURN,将它们留空。

    查看输出结果

    请注意,要查看 *SQL* 缓冲区中任何输出结果的文本,应该在某个时候调用“go”语句。有几种方法可以做到这一点。

    例如,这条 sql 语句将执行,但它不会在 *SQL* 缓冲区中以其当前格式显示任何结果文本:

    select 'foo' as bar
    

    但是,如果在末尾附加“go”:

    select 'foo' as bar
    go
    

    *SQL* 缓冲区中将显示以下内容:

     bar   
     ----- 
     foo
    
    (1 row affected)
    

    或者,如果您不想让“go”语句在 SQL 脚本的文本中乱扔垃圾,请即时调用“go”以查看自上次发送“go”语句以来的所有输出结果sql进程:

    C-c C-s go RET
    

    如果您需要查看最初可能未显示在 *SQL* 缓冲区中的任何错误消息,这将很有帮助。

    【讨论】:

    • @Mark sql-ms (Microsoft SQL Server)
    • @RayVega:使用 Windows 身份验证连接,将用户/密码留空,但得到此 Error: No user selected. Try with -U or -E switches
    • @user443854 您是否在使用 SQL Server CE(Compact Edition)?我相信 Emacs 使用 osql 连接到该版本支持的 sql server:stackoverflow.com/a/2132471/4872
    【解决方案2】:

    有时 emacs 的 sql-ms 显示很糟糕,因为显示的某些列太宽而无法阅读。

    这里有一些针对糟糕输出体验的技巧。

    1.

    M-x toggle-truncate-lines
    

    toggle truncate-lines 可以提高一些可读性。

    2.

    select left(columnName, 25) from table
    

    这会将列宽截断为 25 个字符。这对我来说很完美。

    来源在这里: http://bloggingmath.wordpress.com/2011/02/03/using-emacs-as-your-sql-interface/

    【讨论】:

      【解决方案3】:

      另外,请看这里:

      https://github.com/kiwanami/emacs-edbi

      这样我只使用 odbc 通过 DBD::ODBC 连接到所有东西。

      【讨论】:

        【解决方案4】:

        作者在尝试连接到 SQL 服务器时提到了“陷阱”。

        当尝试连接到 mysql 服务器时,正如投票最多的答案所暗示的那样,这是通过 M-x sql-mysql 完成的,我发现我不断得到

        找不到 SQL 程序“mysql”

        按照at this SO question concerning emacs, sql and Macs的建议,我设置了以下值:

        (setq sql-mysql-program "/usr/local/mysql/bin/mysql")

        这是我的本地 mysql 二进制文件的位置/路径。

        不知道为什么在我看过的任何其他教程中都没有提到这个变量,所以我把它贴在这里,作为前面提到的连接到 mysql 服务器时的“陷阱”。 p>

        【讨论】:

          猜你喜欢
          • 2014-03-03
          • 2011-02-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-06
          • 1970-01-01
          • 2023-03-03
          • 2019-12-12
          相关资源
          最近更新 更多