ITPub博客

首页 > 数据库 > 国内数据库 > 【YashanDB 知识库】使用 c- 调用 yashandb odbc 驱动

【YashanDB 知识库】使用 c- 调用 yashandb odbc 驱动

原创 国内数据库 作者:qiaoyikefu 时间:2025-02-21 10:13:26 0 删除 编辑

问题现象

某客户的应用(c# asp.net)在运行时报如下异常:

问题的风险及影响

客户的应用无法正常运行


问题影响的版本

所有的 yashandb 版本,所有的 yashandb odbc 驱动版本

 

问题发生原因

目前 yashandb 的 odbc 驱动不支持.net 框架使用绑定变量执行 SQL 语句

 

解决方法及规避方式

不使用绑定变量,或者升级 yashandb odbc 驱动版本


问题分析和处理过程

使用如下 c#代码可以重现问题,代码中 t 表的 ddl 定义如下:create table t(tid number);:

static void Main(string[] args)

{

     string connectionString = "Driver=YashanDB;Server=192.168.24.49;Port=1688;Uid=user;Pwd=pwd;";

     try

     {

         using (OdbcConnection connection = new OdbcConnection(connectionString))

         {

             // 打开数据库连接

             connection.Open();

             // 创建一个 SQL 查询

             string query = "SELECT * FROM t where tid = :tid";

             // 使用 OdbcCommand 来执行 SQL 查询

             using (OdbcCommand command = new OdbcCommand(query, connection))

             {

                 command.Parameters.AddWithValue("tid", 1);

                 // 使用 OdbcDataReader 来获取查询结果

                 using (OdbcDataReader reader = command.ExecuteReader())

                 {

                     while (reader.Read())

                     {

                         Console.WriteLine($"ID: {reader["Id"]}, Name: {reader["Name"]}");

                     }

                 }

             }

             // 关闭连接

             connection.Close();

         }

     }

     catch (OdbcException ex)

     {

         Console.WriteLine("Error: " + ex.Message);

     }

}

上面的 c#代码在执行时会在控制台打印异常:Error: ERROR [HY000] [YashanDB][ODBC Driver][Yas]YAS-08008 not all variables bounded
经验总结
最小化问题场景,复现问题。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70043300/viewspace-3073251/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-01-14

  • 博文量
    206
  • 访问量
    188308