• KingbaseES客户端编程接口指南-ODBC(4. 创建数据源)


    4. 创建数据源

    本章节介绍了如何在不同操作系统中配置创建KingbaseES ODBC数据源。

    4.1. 在Windows中创建KingbaseES ODBC数据源

    1. 选择『开始』│『设置』│『控制面板』菜单,在弹出窗口中双击【管理工具】图标进入管理工具界面,双击【数据源(ODBC)】图标。

    2. 选择【系统DSN】选项卡,单击【添加(D)…】按钮,系统弹出【创建新数据源】对话框。

    3. 在 ODBC 驱动器程序列表中,选择【KingbaseES 8.6 ODBC Driver】,单击【完成】按钮,系统弹出【KingbaseES ODBC数据源配置】对话框。

      在【数据源名称】中用户可以填写任何不与现有DSN重名的名称。在对话框中,用户必须填写【数据库名称】。

      对于【数据库名称】和【用户名】,无论是在数据源配置界面中配置连接,还是调用 SQLDriverConnect() 方法连接,都有如下规则:

      1. 如果用户名、数据库名没有用双引号引起来

        • 当服务器的 case_sensitive 属性为 "on" 时,则表示以大写形式的用户名登录,连接的是大写形式的数据库名。

          例如,输入用户名 "SYSTEM" 数据库名 "TEST",就是以用户 "SYSTEM" 连接 "TEST" 数据库。

          相应的 SQLDriverConnect 方法的连接串为:"DRIVER={KingbaseES 8.6 ODBC Driver};SERVER=127.0.0.1;UID=SYSTEM;PWD=MANAGER;DATABASE=TEST;PORT=54321"。

        • 当服务器的 case_sensitive 属性为 "off" 时,则表示以与输入的用户名所含字母相同的用户名登录,连接的是与输入的数据库名所含字母相同的数据库。

          例如,输入用户名 "system" 数据库名 "test",和以用户名 "System" 数据库名 "Test" 连接是一样的。

          相应的 SQLDriverConnect 方法的示例连接串为:"DRIVER={KingbaseES 8.6 ODBC Driver};SERVER=127.0.0.1;UID=system;PWD=MANAGER;DATABASE=test;PORT=54321"。

      2. 如果用户名、数据库名用双引号括起来

        • 当服务器的 case_sensitive 属性为 "on" 时,则表示以和双引号中大小写一致的用户名登录,连接的是和双引号中大小写一致的数据库名。

          例如,输入用户名 "system" 数据库名 "test",就是以用户 "system" 连接 "test" 数据库。

          相应的 SQLDriverConnect 方法的示例连接串为:"DRIVER={KingbaseES 8.6 ODBC Driver};SERVER=127.0.0.1;UID="system";PWD=MANAGER;DATABASE="test";PORT=54321"。

        • 当服务器的 case_sensitive 属性为 "off" 时,则表示以和双引号中所含字母相同的用户名登录,连接的是和双引号中所含字母相同的数据库名。

          例如,输入用户名 "system" 数据库名 "test",和以用户名 "System" 数据库名 "Test" 连接是一样的。

          相应的 SQLDriverConnect 方法的示例连接串为:"DRIVER={KingbaseES 8.6 ODBC Driver};SERVER=127.0.0.1;UID="system";PWD=MANAGER;DATABASE="test";PORT=54321"。

      3. 如果用户名、数据库名中包含双引号

        • 用户名或者数据库名必须使用双引号引起来,并且需要将包含的双引号写两遍表示转义。

          例如,输入用户名 "sys""tem" 和数据库名 "te""st",就是以用户 sys"tem 连接 te"st 数据库。

          相应的 SQLDriverConnect 方法的示例连接串为:"DRIVER={KingbaseES 8.6 ODBC Driver};SERVER=127.0.0.1;UID="sys""tem";PWD=MANAGER;DATABASE="te""st";PORT=54321"。

    4. 如果要进行高级配置,可以单击【数据源】按钮,系统弹出【高级选项】对话框。

      选择或设定您需要的选项值(各选项的含义和用法请参见 KingbaseES ODBC 的扩展属性 中的6.1章节 ),然后单击【确认】按钮,【高级选项】对话框关闭,新建的 ODBC 数据源将采用该对话框中的设置。

    5. 单击【保存】按钮,这样就创建了一个 KingbaseES ODBC 数据源。

    6. 如果要测试与数据源的连接是否成功,可以单击【测试】,系统会根据测试的结果弹出相应的消息框。

    4.2. 在Linux中创建KingbaseES ODBC数据源

    配置 ODBC Data Source 需要使用 odbcinst。

    通过命令行方式配置 ODBC 数据源的步骤:

    1. 首先检查 ODBC Driver 是否已经安装。

      在系统中找到 odbcinst.ini 文件,和/usr/bin/odbcinst 对应的 odbcinst.ini 在 /etc 目录下,和/usr/local/bin/odbcinst 对应的 odbcinst.ini 在 /usr/local/etc 目录下。 在 odbcinst.ini 文件中查找 [KingbaseES 8.6 ODBC Driver] 这一项。 如果没有,则编写一个模板文件 "template_file1" ,包含如下内容:

      [KingbaseES 8.6 ODBC Driver]
      Description     = KingbaseES 8.6 ODBC Driver for Linux
      Driver          = /opt/Kingbase/ES/V8R6/Odbc/kdbodbcw.so
      Debug           = 0
      CommLog         = 1
      
    2. 然后,执行如下命令:

      odbcinst -i -d -f template_file1
      

      这样就安装了 KingbaseES 的 ODBC Driver。

    3. 编写一个模板文件 template_file2,包含如下内容:

      [kingbase]
      Description             = KingbaseES
      Driver                  = KingbaseES 8.6 ODBC Driver
      Trace                   = No
      TraceFile               =
      Database                = TEST
      Servername              = localhost
      Username                = SYSTEM
      Password                = 123
      Port                    = 54321
      ReadOnly                = No
      RowVersioning           = No
      ShowSystemTables        = No
      ShowOidColumn           = No
      FakeOidIndex            = No
      ConnSettings            =
      

      [kingbase] 指定 DSN 名为 kingbase。等号左侧为选项名,右侧为选项值。

      Driver,Servername,Port,Username,Password,Database 等6项是必须填写的项。其中,需要注意的是用户名和数据库名的大小写。

      详细的内容请参考 在Windows中创建KingbaseES ODBC数据源 部分的内容。

      "Driver = KingbaseES 8.6 ODBC Driver" 指明该 DSN 使用 KingbaseES 的 ODBC Driver。

      更多的选项的含义和用法请参考 KingbaseES ODBC 的扩展属性 中的6.2章节 。

    4. 执行如下命令:

      odbcinst -i -s -f template_file2
      

      这样就创建了名为 kingbase 的 KingbaseES ODBC 数据源。

    5. 如果要测试到数据源的连接是否成功,可以使用unixODBC自带的isql工具进行检测,方法如下:

      isql的使用方法为:isql DSN [UID [PWD]] [options],[options]

      参数设置详见: isql -help

      以上面配置的ODBC数据源为例,执行如下命令:

      /* 显示unixODBC的当前版本 */
      root@root:~$ isql --v
      unixODBC 2.3.4
      
      /* 若在数据源中填写了用户名和密码,此处可省略用户名和密码,简写为 isql kingbase */
      root@root:~$ isql kingbase SYSTEM MANAGER
      

      如果连接成功会显示以下信息:

      +---------------------------------------+
      | Connected!                            |
      |                                       |
      | sql-statement                         |
      | help [tablename]                      |
      | quit                                  |
      |                                       |
      +---------------------------------------+
      

      如果连接失败会显示以下信息:

      [ISQL]ERROR: Could not SQLConnect
  • 相关阅读:
    再次登顶 GitHub,阿里大牛用 758 页讲清微服务 K8S 响应式的文案,真的太香了
    SQL单表复杂查询where、group by、order by、limit
    产品思维训练 | 亚马逊流量7-8月网站访客流量下降,请分析原因
    金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)
    huggingface 模型推理几个重要到类
    传奇服务器配置如何搭建
    344. Reverse String
    数据结构之堆 → 不要局限于堆排序
    创建项目与认识DevEco Studio界面
    基于vue2.x搭建组件库的流程
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126034694