【DM版本】:DM8(–03134283938-20221019-172201-20018)
【操作系统】:windows 10 64位
【CPU】:i5-10500
【问题描述】*:
版本:DmProvider.1.1.0.11058
【DmProvider】切换连接后查询的模式没有更改导致数据错乱。第一次查询schema=erp_config 中的myUser表的条数是5;第二次查询schema=erp_tenant1 中的myUser表的条数还是5,实际上是3条,说明切换连接字符串后查询的模式没有更改。
示例代码:
string s_connectionString = "server= localhost; port=5236; password=SYSDBA; user=SYSDBA; schema=erp_config; ENCODING=UTF-8; conn_pooling=True";
string s_connectionString2 = "server= localhost; port=5236; password=SYSDBA; user=SYSDBA; schema=erp_tenant1; ENCODING=UTF-8; conn_pooling=True";
var sql = "SELECT COUNT(*) FROM myUser";
var connection = new DmConnection();
connection.ConnectionString = s_connectionString;
DmCommand cmd = new DmCommand();
cmd.Connection = connection;
cmd.CommandText = sql;
// 第一次查询
connection.Open();
var result1 = cmd.ExecuteScalar();
connection.Close();
connection.Dispose();
// 第二次查询
connection.ConnectionString = s_connectionString2;
connection.Open();
var result2 = cmd.ExecuteScalar();
connection.Close();
你好,我看你的连接字符串
string s_connectionString2 = "server= localhost; port=5236; password=SYSDBA; user=SYSDBA; schema=erp_tenant1; ENCODING=UTF-8; conn_pooling=True";
其中
schema
ENCODING
conn_pooling
这些参数是否支持,你是怎么知道的?
在var result2 = cmd.ExecuteScalar();执行前,执行查询当前连接的模式名,用这个SQL查询
select sys_context(‘USERENV’,‘CURRENT_SCHEMA’);