mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 修复 Odbc 自定义 N'' 无效;#1332
This commit is contained in:
parent
07f2ee7be6
commit
3c0c106cc3
@ -4,6 +4,7 @@ using FreeSql.Extensions;
|
||||
using FreeSql.Internal;
|
||||
using FreeSql.Internal.CommonProvider;
|
||||
using FreeSql.Internal.Model;
|
||||
using FreeSql.Odbc.Default;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
@ -381,8 +382,39 @@ namespace base_entity
|
||||
}
|
||||
public enum JoinTest01Enum { f1, f2, f3 }
|
||||
|
||||
public class AccessOdbcAdapter : OdbcAdapter
|
||||
{
|
||||
public override string UnicodeStringRawSql(object value, ColumnInfo mapColumn) => value == null ? "NULL" : string.Concat("'", value.ToString().Replace("'", "''"), "'");
|
||||
}
|
||||
private static IFreeSql CreateInstance(string connectString, DataType type)
|
||||
{
|
||||
IFreeSql client = new FreeSqlBuilder()
|
||||
.UseConnectionString(type, connectString)
|
||||
.Build();
|
||||
if (DataType.Odbc.Equals(type))
|
||||
{
|
||||
client.SetOdbcAdapter(new AccessOdbcAdapter());
|
||||
}
|
||||
return client;
|
||||
}
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
using (IFreeSql client = CreateInstance(@"Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/accdb/2007.accdb", DataType.Odbc))
|
||||
{
|
||||
Dictionary<string, object> data = new Dictionary<string, object>();
|
||||
data.Add("ExpNo", "RSP0950008");
|
||||
data.Add("SPoint", "RSP0950004");
|
||||
data.Add("EPoint", "RSP095000440");
|
||||
data.Add("PType", "RS");
|
||||
data.Add("GType", "窨井轮廓线");
|
||||
data.Add("LineStyle", 2);
|
||||
data.Add("Memo", null);
|
||||
data.Add("ClassID", null);
|
||||
var kdkdksqlxx = client.InsertDict(data).AsTable("FZLINE").ToSql();
|
||||
}
|
||||
|
||||
|
||||
BaseModel<User1>.fsql = 1;
|
||||
BaseModel<UserGroup>.fsql = 2;
|
||||
Console.WriteLine(BaseModel<User1>.fsql);
|
||||
|
@ -37,7 +37,8 @@ namespace FreeSql.Odbc.Default
|
||||
return ret;
|
||||
});
|
||||
|
||||
public override string FormatSql(string sql, params object[] args) => sql?.FormatOdbc(args);
|
||||
static FreeSql.Odbc.Default.OdbcAdo _customAdo = new FreeSql.Odbc.Default.OdbcAdo();
|
||||
public override string FormatSql(string sql, params object[] args) => (_orm?.Ado as OdbcAdo)?.Addslashes(sql, args) ?? _customAdo.Addslashes(sql, args);
|
||||
public override string QuoteSqlName(params string[] name)
|
||||
{
|
||||
if (name.Length == 1)
|
||||
|
@ -37,15 +37,6 @@
|
||||
internal static string FormatOdbcPostgreSQL(this string that, params object[] args) => _odbcPostgreSQLAdo.Addslashes(that, args);
|
||||
static FreeSql.Odbc.PostgreSQL.OdbcPostgreSQLAdo _odbcPostgreSQLAdo = new FreeSql.Odbc.PostgreSQL.OdbcPostgreSQLAdo();
|
||||
|
||||
/// <summary>
|
||||
/// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换
|
||||
/// </summary>
|
||||
/// <param name="that"></param>
|
||||
/// <param name="args"></param>
|
||||
/// <returns></returns>
|
||||
internal static string FormatOdbc(this string that, params object[] args) => _odbcAdo.Addslashes(that, args);
|
||||
static FreeSql.Odbc.Default.OdbcAdo _odbcAdo = new FreeSql.Odbc.Default.OdbcAdo();
|
||||
|
||||
/// <summary>
|
||||
/// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换
|
||||
/// </summary>
|
||||
|
Loading…
x
Reference in New Issue
Block a user