Skip to content

Commit a05a35e

Browse files
darrenkopphazzik
authored andcommitted
Fix NH-3252
Handle ANSI strings in the same way that normal strings are handled.
1 parent 7c8a0ff commit a05a35e

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/NHibernate/Driver/SqlClientDriver.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ protected static void SetDefaultParameterSize(IDbDataParameter dbParam, SqlType
122122
{
123123
case DbType.AnsiString:
124124
case DbType.AnsiStringFixedLength:
125-
dbParam.Size = MaxSizeForLengthLimitedAnsiString;
125+
dbParam.Size = IsAnsiText(dbParam, sqlType) ? MaxSizeForAnsiClob : MaxSizeForLengthLimitedAnsiString;
126126
break;
127127
case DbType.Binary:
128128
dbParam.Size = IsBlob(dbParam, sqlType) ? MaxSizeForBlob : MaxSizeForLengthLimitedBinary;
@@ -144,6 +144,17 @@ protected static void SetDefaultParameterSize(IDbDataParameter dbParam, SqlType
144144
}
145145
}
146146

147+
/// <summary>
148+
/// Interprets if a parameter is a Clob (for the purposes of setting its default size)
149+
/// </summary>
150+
/// <param name="dbParam">The parameter</param>
151+
/// <param name="sqlType">The <see cref="SqlType" /> of the parameter</param>
152+
/// <returns>True, if the parameter should be interpreted as a Clob, otherwise False</returns>
153+
protected static bool IsAnsiText(IDbDataParameter dbParam, SqlType sqlType)
154+
{
155+
return ((DbType.AnsiString == dbParam.DbType || DbType.AnsiStringFixedLength == dbParam.DbType) && sqlType.LengthDefined && (sqlType.Length > MaxSizeForLengthLimitedAnsiString));
156+
}
157+
147158
/// <summary>
148159
/// Interprets if a parameter is a Clob (for the purposes of setting its default size)
149160
/// </summary>

0 commit comments

Comments
 (0)