问题现象
某客户的应用(c# asp.net)在运行时报如下异常:
图片.png
问题的风险及影响

客户的应用无法正常运行

问题影响的版本
所有的 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[Yas]YAS-08008 not all variables bounded
经验总结
最小化问题场景,复现问题。


qiaoyikefu
1 声望0 粉丝