- 修复 Clickhouse 参数化特殊字符 / 处理;

This commit is contained in:
2881099 2022-08-29 19:28:42 +08:00
parent cc5feb58d1
commit cf028c9838
2 changed files with 6 additions and 4 deletions

View File

@ -309,7 +309,7 @@ namespace FreeSql.Tests.ClickHouse
[Fact] [Fact]
public void TestInsertNoneParameter() public void TestInsertNoneParameter()
{ {
var json = "[{\"date\":\t\"2021-12-19T02:47:53.4365075 08:00\",\"temperatureC\":6,\"temperatureF\":42,\"summary\":\"Balmy\"},{\"date\":\"2021-12-20T02:47:53.4366893 08:00\",\"temperatureC\":36,\"temperatureF\":96,\"summary\":\"Bracing\"},{\"date\":\"2021-12-21T02:47:53.4366903 08:00\",\"temperatureC\":-15,\"temperatureF\":6,\"summary\":\"Bracing\"},{\"date\":\"2021-12-22T02:47:53.4366904 08:00\",\"temperatureC\":14,\"temperatureF\":57,\"summary\":\"Cool\"},{\"date\":\"2021-12-23T02:47:53.4366905 08:00\",\"temperatureC\":29,\"temperatureF\":84,\"summary\":\"Mild\"}]"; var json = "[{\"date\":\t\"2021-12-19T02:47:53.4365075 08:00/\",\"temperatureC\":6,\"temperatureF\":42,\"summary\":\"Balmy\"},{\"date\":\"2021-12-20T02:47:53.4366893 08:00\",\"temperatureC\":36,\"temperatureF\":96,\"summary\":\"Bracing\"},{\"date\":\"2021-12-21T02:47:53.4366903 08:00\",\"temperatureC\":-15,\"temperatureF\":6,\"summary\":\"Bracing\"},{\"date\":\"2021-12-22T02:47:53.4366904 08:00\",\"temperatureC\":14,\"temperatureF\":57,\"summary\":\"Cool\"},{\"date\":\"2021-12-23T02:47:53.4366905 08:00\",\"temperatureC\":29,\"temperatureF\":84,\"summary\":\"Mild\"}]";
var data = new Entity { Id = Guid.NewGuid().ToString(), Content = json }; var data = new Entity { Id = Guid.NewGuid().ToString(), Content = json };
var fsql = g.clickHouse; var fsql = g.clickHouse;
@ -323,7 +323,7 @@ namespace FreeSql.Tests.ClickHouse
{ {
var fsql = g.clickHouse; var fsql = g.clickHouse;
fsql.CodeFirst.SyncStructure<Entity>(); fsql.CodeFirst.SyncStructure<Entity>();
var json = "[{\"date\":\t\"2021-12-19T02:47:53.4365075 08:00\",\"temperatureC\":6,\"temperatureF\":42,\"summary\":\"Balmy\"},{\"date\":\"2021-12-20T02:47:53.4366893 08:00\",\"temperatureC\":36,\"temperatureF\":96,\"summary\":\"Bracing\"},{\"date\":\"2021-12-21T02:47:53.4366903 08:00\",\"temperatureC\":-15,\"temperatureF\":6,\"summary\":\"Bracing\"},{\"date\":\"2021-12-22T02:47:53.4366904 08:00\",\"temperatureC\":14,\"temperatureF\":57,\"summary\":\"Cool\"},{\"date\":\"2021-12-23T02:47:53.4366905 08:00\",\"temperatureC\":29,\"temperatureF\":84,\"summary\":\"Mild\"}]"; var json = "[{\"date\":\t\"2021-12-19T02:47:53.4365075 08:00/\",\"temperatureC\":6,\"temperatureF\":42,\"summary\":\"Balmy\"},{\"date\":\"2021-12-20T02:47:53.4366893 08:00\",\"temperatureC\":36,\"temperatureF\":96,\"summary\":\"Bracing\"},{\"date\":\"2021-12-21T02:47:53.4366903 08:00\",\"temperatureC\":-15,\"temperatureF\":6,\"summary\":\"Bracing\"},{\"date\":\"2021-12-22T02:47:53.4366904 08:00\",\"temperatureC\":14,\"temperatureF\":57,\"summary\":\"Cool\"},{\"date\":\"2021-12-23T02:47:53.4366905 08:00\",\"temperatureC\":29,\"temperatureF\":84,\"summary\":\"Mild\"}]";
var data = new Entity { Id = Guid.NewGuid().ToString(), Content = json }; var data = new Entity { Id = Guid.NewGuid().ToString(), Content = json };
var sql1 = fsql.Insert(data).ToSql(); var sql1 = fsql.Insert(data).ToSql();

View File

@ -23,7 +23,8 @@ namespace FreeSql.ClickHouse
value = str?.Replace("\t", "\\t") value = str?.Replace("\t", "\\t")
.Replace("\r\n", "\\r\\n") .Replace("\r\n", "\\r\\n")
.Replace("\n", "\\n") .Replace("\n", "\\n")
.Replace("\r", "\\r"); .Replace("\r", "\\r")
.Replace("/", "\\/");
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}"; if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
var dbtype = (DbType?)_orm.CodeFirst.GetDbInfo(type)?.type; var dbtype = (DbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
DbParameter ret = new ClickHouseDbParameter { ParameterName = parameterName };//QuoteParamterName(parameterName) DbParameter ret = new ClickHouseDbParameter { ParameterName = parameterName };//QuoteParamterName(parameterName)
@ -56,7 +57,8 @@ namespace FreeSql.ClickHouse
value = str?.Replace("\t", "\\t") value = str?.Replace("\t", "\\t")
.Replace("\r\n", "\\r\\n") .Replace("\r\n", "\\r\\n")
.Replace("\n", "\\n") .Replace("\n", "\\n")
.Replace("\r", "\\r"); .Replace("\r", "\\r")
.Replace("/", "\\/");
DbParameter ret = new ClickHouseDbParameter { ParameterName = $"?{name}", Value = value }; DbParameter ret = new ClickHouseDbParameter { ParameterName = $"?{name}", Value = value };
var tp = _orm.CodeFirst.GetDbInfo(type)?.type; var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
if (tp != null) if (tp != null)