|
2013-12-19
| ||
| 13:02 | • Closed ticket [ef2216192d]: Use Varchar type with size more than 65536 will trigger error when using SQLiteCommandBuilder plus 4 other changes artifact: f69ca58604 user: mistachkin | |
| 13:01 | Do not use the 16-bit 'short' type to keep track of numeric precision or scale when building the schema table for a query. Fix for [ef2216192d]. check-in: c07cca890b user: mistachkin tags: trunk | |
| 12:22 | • Ticket [ef2216192d] Use Varchar type with size more than 65536 will trigger error when using SQLiteCommandBuilder status still Open with 6 other changes artifact: 1f95cc1207 user: mistachkin | |
| 06:46 | • New ticket [ef2216192d]. artifact: ad62356f4e user: anonymous | |
| Ticket Hash: | ef2216192d9afba16a8b3009ca6f6fb331901246 | ||
| Title: | Use Varchar type with size more than 65536 will trigger error when using SQLiteCommandBuilder | ||
| Status: | Closed | Type: | Code_Defect |
| Severity: | Important | Priority: | Blocker |
| Subsystem: | Data_Reader | Resolution: | Fixed |
| Last Modified: |
2013-12-19 13:02:43 12.32 years ago |
Created: |
2013-12-19 06:46:32 12.32 years ago |
| Version Found In: | 1.0.89.0 | ||
| User Comments: | ||||
anonymous added on 2013-12-19 06:46:32:
when a table contains some fields which is varchar type and with a size more than 65536, using SQLiteCommandBuilder.GetInsertCommand() method will trigger errors like this:
------------------------------------------------------------------
System.ArgumentException: Value was either too large or too small for an Int16.Couldn't store <65536> in NumericPrecision Column. Expected type is Int16. ---> System.OverflowException: Value was either too large or too small for an Int16.
at System.Convert.ToInt16(Int32 value)
at System.Int32.System.IConvertible.ToInt16(IFormatProvider provider)
at System.Data.Common.Int16Storage.Set(Int32 record, Object value)
at System.Data.DataColumn.set_Item(Int32 record, Object value)
--- End of inner exception stack trace ---
at System.Data.DataColumn.set_Item(Int32 record, Object value)
at System.Data.DataRow.set_Item(DataColumn column, Object value)
at System.Data.DataRow.set_Item(String columnName, Object value)
at System.Data.SQLite.SQLiteDataReader.GetSchemaTable(Boolean wantUniqueInfo, Boolean wantDefaultValue)
at System.Data.SQLite.SQLiteKeyReader..ctor(SQLiteConnection cnn, SQLiteDataReader reader, SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.LoadKeyInfo()
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommandBuilder.GetSchemaTable(DbCommand sourceCommand)
at System.Data.Common.DbCommandBuilder.BuildCache(Boolean closeConnection, DataRow dataRow, Boolean useColumnsForParameterNames)
at System.Data.Common.DbCommandBuilder.GetInsertCommand(DataRow dataRow, Boolean useColumnsForParameterNames)
at System.Data.Common.DbCommandBuilder.GetInsertCommand()
at System.Data.SQLite.SQLiteCommandBuilder.GetInsertCommand()
---------------------------------------------------------------------
codes are:
string sql = string.Format("select * from tableName");
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
SQLiteCommandBuilder cb = new SQLiteCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand(); //==>raise error here
da.DeleteCommand = cb.GetDeleteCommand();
mistachkin added on 2013-12-19 13:02:43:
Fixed on trunk via check-in [c07cca890b]. | ||||