Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Remove the now unused SQLiteConvert.ColumnToType method. Add TraceWarning connection flag to enable tracing of type mapping failures and disable tracing of them by default, pursuant to [6d45c782e4]. Update internal error message list to include SQLITE_NOTICE and SQLITE_WARNING. Update internal SQLiteConfigOpsEnum enumeration to include recently added values in the SQLite core library. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
16f09dbc5392fb53b2e8f964de3cdb74 |
User & Date: | mistachkin 2013-12-11 07:54:09.682 |
Context
2013-12-18
| ||
05:33 | Update Eagle in externals to the pending beta 29 release. check-in: c0de75b66e user: mistachkin tags: trunk | |
2013-12-11
| ||
07:54 | Remove the now unused SQLiteConvert.ColumnToType method. Add TraceWarning connection flag to enable tracing of type mapping failures and disable tracing of them by default, pursuant to [6d45c782e4]. Update internal error message list to include SQLITE_NOTICE and SQLITE_WARNING. Update internal SQLiteConfigOpsEnum enumeration to include recently added values in the SQLite core library. check-in: 16f09dbc53 user: mistachkin tags: trunk | |
2013-12-06
| ||
21:35 | Update SQLite core library to the official 3.8.2 release. check-in: b4899f4421 user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite.Linq/SQLiteProviderServices.cs.
︙ | ︙ | |||
361 362 363 364 365 366 367 368 369 370 | SQLiteCommandBuilder builder = new SQLiteCommandBuilder(); using (SQLiteCommand cmd = cnn.CreateCommand()) using (DataTable source = new DataTable()) { sql.AppendFormat(CultureInfo.InvariantCulture, "CREATE TEMP TABLE {0} (", builder.QuoteIdentifier(dest)); string separator = String.Empty; foreach (DataColumn dc in table.Columns) { DbType dbtypeName = SQLiteConvert.TypeToDbType(dc.DataType); | > | | 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | SQLiteCommandBuilder builder = new SQLiteCommandBuilder(); using (SQLiteCommand cmd = cnn.CreateCommand()) using (DataTable source = new DataTable()) { sql.AppendFormat(CultureInfo.InvariantCulture, "CREATE TEMP TABLE {0} (", builder.QuoteIdentifier(dest)); string separator = String.Empty; SQLiteConnectionFlags flags = cnn.Flags; foreach (DataColumn dc in table.Columns) { DbType dbtypeName = SQLiteConvert.TypeToDbType(dc.DataType); string typeName = SQLiteConvert.DbTypeToTypeName(dbtypeName, flags); sql.AppendFormat(CultureInfo.InvariantCulture, "{2}{0} {1} COLLATE NOCASE", builder.QuoteIdentifier(dc.ColumnName), typeName, separator); separator = ", "; } sql.Append(")"); cmd.CommandText = sql.ToString(); |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteBase.cs.
1 2 3 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Robert Simpson (robert@blackcastlesoft.com) | | | 1 2 3 4 5 6 7 8 9 10 11 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Robert Simpson (robert@blackcastlesoft.com) * * Released to the public domain, use at your own risk! ********************************************************/ namespace System.Data.SQLite { using System; |
︙ | ︙ | |||
158 159 160 161 162 163 164 | /// <summary> /// Steps through a prepared statement. /// </summary> /// <param name="stmt">The SQLiteStatement to step through</param> /// <returns>True if a row was returned, False if not.</returns> internal abstract bool Step(SQLiteStatement stmt); /// <summary> | | | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | /// <summary> /// Steps through a prepared statement. /// </summary> /// <param name="stmt">The SQLiteStatement to step through</param> /// <returns>True if a row was returned, False if not.</returns> internal abstract bool Step(SQLiteStatement stmt); /// <summary> /// Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, /// transparently attempt to rebuild the SQL statement and throw an error if that was not possible. /// </summary> /// <param name="stmt">The statement to reset</param> /// <returns>Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock</returns> internal abstract SQLiteErrorCode Reset(SQLiteStatement stmt); /// <summary> |
︙ | ︙ | |||
349 350 351 352 353 354 355 | /// <summary> /// Enables or disabled extened result codes returned by SQLite /// </summary> /// <param name="bOnOff">true to enable extended result codes, false to disable.</param> /// <returns></returns> internal abstract void SetExtendedResultCodes(bool bOnOff); /// <summary> | | | | | | | | 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 | /// <summary> /// Enables or disabled extened result codes returned by SQLite /// </summary> /// <param name="bOnOff">true to enable extended result codes, false to disable.</param> /// <returns></returns> internal abstract void SetExtendedResultCodes(bool bOnOff); /// <summary> /// Returns the numeric result code for the most recent failed SQLite API call /// associated with the database connection. /// </summary> /// <returns>Result code</returns> internal abstract SQLiteErrorCode ResultCode(); /// <summary> /// Returns the extended numeric result code for the most recent failed SQLite API call /// associated with the database connection. /// </summary> /// <returns>Extended result code</returns> internal abstract SQLiteErrorCode ExtendedResultCode(); /// <summary> /// Add a log message via the SQLite sqlite3_log interface. /// </summary> /// <param name="iErrCode">Error code to be logged with the message.</param> /// <param name="zMessage">String to be logged. Unlike the SQLite sqlite3_log() /// interface, this should be pre-formatted. Consider using the /// String.Format() function.</param> /// <returns></returns> internal abstract void LogMessage(SQLiteErrorCode iErrCode, string zMessage); #if INTEROP_CODEC internal abstract void SetPassword(byte[] passwordBytes); internal abstract void ChangePassword(byte[] newPasswordBytes); |
︙ | ︙ | |||
553 554 555 556 557 558 559 | /* SQLITE_CONSTRAINT */ "constraint failed", /* SQLITE_MISMATCH */ "datatype mismatch", /* SQLITE_MISUSE */ "library routine called out of sequence", /* SQLITE_NOLFS */ "large file support is disabled", /* SQLITE_AUTH */ "authorization denied", /* SQLITE_FORMAT */ "auxiliary database format error", /* SQLITE_RANGE */ "bind or column index out of range", | | > > | 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 | /* SQLITE_CONSTRAINT */ "constraint failed", /* SQLITE_MISMATCH */ "datatype mismatch", /* SQLITE_MISUSE */ "library routine called out of sequence", /* SQLITE_NOLFS */ "large file support is disabled", /* SQLITE_AUTH */ "authorization denied", /* SQLITE_FORMAT */ "auxiliary database format error", /* SQLITE_RANGE */ "bind or column index out of range", /* SQLITE_NOTADB */ "file is encrypted or is not a database", /* SQLITE_NOTICE */ "notification message", /* SQLITE_WARNING */ "warning message" }; /////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Returns the error message for the specified SQLite return code using /// the internal static lookup table. |
︙ | ︙ | |||
971 972 973 974 975 976 977 978 979 980 981 982 983 984 | /// <summary> /// Enable logging of certain virtual table module exceptions that cannot /// be easily discovered via other means. /// </summary> LogModuleException = 0x4000, /// <summary> /// When binding and returning column values, always treat them as though /// they were plain text (i.e. no numeric, date/time, or other conversions /// should be attempted). /// </summary> BindAndGetAllAsText = BindAllAsText | GetAllAsText, | > > > > > > | 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 | /// <summary> /// Enable logging of certain virtual table module exceptions that cannot /// be easily discovered via other means. /// </summary> LogModuleException = 0x4000, /// <summary> /// Enable tracing of potentially important [non-fatal] error conditions /// that cannot be easily reported through other means. /// </summary> TraceWarning = 0x8000, /// <summary> /// When binding and returning column values, always treat them as though /// they were plain text (i.e. no numeric, date/time, or other conversions /// should be attempted). /// </summary> BindAndGetAllAsText = BindAllAsText | GetAllAsText, |
︙ | ︙ | |||
994 995 996 997 998 999 1000 | /// </summary> Default = LogCallbackException | LogModuleException } // These are the options to the internal sqlite3_config call. internal enum SQLiteConfigOpsEnum { | | | | | | | | | | | | | | | | | > > > > > > > | < | 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 | /// </summary> Default = LogCallbackException | LogModuleException } // These are the options to the internal sqlite3_config call. internal enum SQLiteConfigOpsEnum { SQLITE_CONFIG_NONE = 0, // nil SQLITE_CONFIG_SINGLETHREAD = 1, // nil SQLITE_CONFIG_MULTITHREAD = 2, // nil SQLITE_CONFIG_SERIALIZED = 3, // nil SQLITE_CONFIG_MALLOC = 4, // sqlite3_mem_methods* SQLITE_CONFIG_GETMALLOC = 5, // sqlite3_mem_methods* SQLITE_CONFIG_SCRATCH = 6, // void*, int sz, int N SQLITE_CONFIG_PAGECACHE = 7, // void*, int sz, int N SQLITE_CONFIG_HEAP = 8, // void*, int nByte, int min SQLITE_CONFIG_MEMSTATUS = 9, // boolean SQLITE_CONFIG_MUTEX = 10, // sqlite3_mutex_methods* SQLITE_CONFIG_GETMUTEX = 11, // sqlite3_mutex_methods* // previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused SQLITE_CONFIG_LOOKASIDE = 13, // int int SQLITE_CONFIG_PCACHE = 14, // sqlite3_pcache_methods* SQLITE_CONFIG_GETPCACHE = 15, // sqlite3_pcache_methods* SQLITE_CONFIG_LOG = 16, // xFunc, void* SQLITE_CONFIG_URI = 17, // int SQLITE_CONFIG_PCACHE2 = 18, // sqlite3_pcache_methods2* SQLITE_CONFIG_GETPCACHE2 = 19, // sqlite3_pcache_methods2* SQLITE_CONFIG_COVERING_INDEX_SCAN = 20, // int SQLITE_CONFIG_SQLLOG = 21, // xSqllog, void* SQLITE_CONFIG_MMAP_SIZE = 22, // sqlite3_int64, sqlite3_int64 SQLITE_CONFIG_WIN32_HEAPSIZE = 23 // int nByte } } |
Changes to System.Data.SQLite/SQLiteCommand.cs.
︙ | ︙ | |||
247 248 249 250 251 252 253 | } #endregion /////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// This method attempts to query the flags associated with the database | | | | 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | } #endregion /////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// This method attempts to query the flags associated with the database /// connection in use. If the database connection is disposed, the default /// flags will be returned. /// </summary> /// <param name="command"> /// The command containing the databse connection to query the flags from. /// </param> /// <returns> /// The connection flags value. /// </returns> |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
3281 3282 3283 3284 3285 3286 3287 | row["COLUMN_NAME"] = schemaRow[SchemaTableColumn.ColumnName]; row["TABLE_CATALOG"] = strCatalog; row["ORDINAL_POSITION"] = schemaRow[SchemaTableColumn.ColumnOrdinal]; row["COLUMN_HASDEFAULT"] = (schemaRow[SchemaTableOptionalColumn.DefaultValue] != DBNull.Value); row["COLUMN_DEFAULT"] = schemaRow[SchemaTableOptionalColumn.DefaultValue]; row["IS_NULLABLE"] = schemaRow[SchemaTableColumn.AllowDBNull]; row["DATA_TYPE"] = schemaRow["DataTypeName"].ToString().ToLower(CultureInfo.InvariantCulture); | | | 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 | row["COLUMN_NAME"] = schemaRow[SchemaTableColumn.ColumnName]; row["TABLE_CATALOG"] = strCatalog; row["ORDINAL_POSITION"] = schemaRow[SchemaTableColumn.ColumnOrdinal]; row["COLUMN_HASDEFAULT"] = (schemaRow[SchemaTableOptionalColumn.DefaultValue] != DBNull.Value); row["COLUMN_DEFAULT"] = schemaRow[SchemaTableOptionalColumn.DefaultValue]; row["IS_NULLABLE"] = schemaRow[SchemaTableColumn.AllowDBNull]; row["DATA_TYPE"] = schemaRow["DataTypeName"].ToString().ToLower(CultureInfo.InvariantCulture); row["EDM_TYPE"] = SQLiteConvert.DbTypeToTypeName((DbType)schemaRow[SchemaTableColumn.ProviderType], _flags).ToString().ToLower(CultureInfo.InvariantCulture); row["CHARACTER_MAXIMUM_LENGTH"] = schemaRow[SchemaTableColumn.ColumnSize]; row["TABLE_SCHEMA"] = schemaRow[SchemaTableColumn.BaseSchemaName]; row["PRIMARY_KEY"] = schemaRow[SchemaTableColumn.IsKey]; row["AUTOINCREMENT"] = schemaRow[SchemaTableOptionalColumn.IsAutoIncrement]; row["COLLATION_NAME"] = schemaRow["CollationType"]; row["UNIQUE"] = schemaRow[SchemaTableColumn.IsUnique]; tbl.Rows.Add(row); |
︙ | ︙ | |||
3972 3973 3974 3975 3976 3977 3978 | row["COLUMN_NAME"] = schemaRow[SchemaTableColumn.BaseColumnName]; row["VIEW_COLUMN_NAME"] = viewRow[SchemaTableColumn.ColumnName]; row["COLUMN_HASDEFAULT"] = (viewRow[SchemaTableOptionalColumn.DefaultValue] != DBNull.Value); row["COLUMN_DEFAULT"] = viewRow[SchemaTableOptionalColumn.DefaultValue]; row["ORDINAL_POSITION"] = viewRow[SchemaTableColumn.ColumnOrdinal]; row["IS_NULLABLE"] = viewRow[SchemaTableColumn.AllowDBNull]; row["DATA_TYPE"] = viewRow["DataTypeName"]; // SQLiteConvert.DbTypeToType((DbType)viewRow[SchemaTableColumn.ProviderType]).ToString(); | | | 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 | row["COLUMN_NAME"] = schemaRow[SchemaTableColumn.BaseColumnName]; row["VIEW_COLUMN_NAME"] = viewRow[SchemaTableColumn.ColumnName]; row["COLUMN_HASDEFAULT"] = (viewRow[SchemaTableOptionalColumn.DefaultValue] != DBNull.Value); row["COLUMN_DEFAULT"] = viewRow[SchemaTableOptionalColumn.DefaultValue]; row["ORDINAL_POSITION"] = viewRow[SchemaTableColumn.ColumnOrdinal]; row["IS_NULLABLE"] = viewRow[SchemaTableColumn.AllowDBNull]; row["DATA_TYPE"] = viewRow["DataTypeName"]; // SQLiteConvert.DbTypeToType((DbType)viewRow[SchemaTableColumn.ProviderType]).ToString(); row["EDM_TYPE"] = SQLiteConvert.DbTypeToTypeName((DbType)viewRow[SchemaTableColumn.ProviderType], _flags).ToString().ToLower(CultureInfo.InvariantCulture); row["CHARACTER_MAXIMUM_LENGTH"] = viewRow[SchemaTableColumn.ColumnSize]; row["TABLE_SCHEMA"] = viewRow[SchemaTableColumn.BaseSchemaName]; row["PRIMARY_KEY"] = viewRow[SchemaTableColumn.IsKey]; row["AUTOINCREMENT"] = viewRow[SchemaTableOptionalColumn.IsAutoIncrement]; row["COLLATION_NAME"] = viewRow["CollationType"]; row["UNIQUE"] = viewRow[SchemaTableColumn.IsUnique]; tbl.Rows.Add(row); |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | ︙ | |||
775 776 777 778 779 780 781 | return false; default: throw new ArgumentException("source"); } } #region Type Conversions | < < < < < < < < < < < | 775 776 777 778 779 780 781 782 783 784 785 786 787 788 | return false; default: throw new ArgumentException("source"); } } #region Type Conversions /// <summary> /// Converts a SQLiteType to a .NET Type object /// </summary> /// <param name="t">The SQLiteType to convert</param> /// <returns>Returns a .NET Type object</returns> internal static Type SQLiteTypeToType(SQLiteType t) { |
︙ | ︙ | |||
960 961 962 963 964 965 966 967 | DBNull.Value // Xml (25) }; /// <summary> /// Determines the type name for the given database value type. /// </summary> /// <param name="typ">The database value type.</param> /// <returns>The type name or an empty string if it cannot be determined.</returns> | > | > > | | | | > | 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 | DBNull.Value // Xml (25) }; /// <summary> /// Determines the type name for the given database value type. /// </summary> /// <param name="typ">The database value type.</param> /// <param name="flags">The flags associated with the parent connection object.</param> /// <returns>The type name or an empty string if it cannot be determined.</returns> internal static string DbTypeToTypeName(DbType typ, SQLiteConnectionFlags flags) { lock (_syncRoot) { if (_typeNames == null) _typeNames = GetSQLiteDbTypeMap(); SQLiteDbTypeMapping value; if (_typeNames.TryGetValue(typ, out value)) return value.typeName; } string defaultTypeName = String.Empty; #if !NET_COMPACT_20 && TRACE_WARNING if ((flags & SQLiteConnectionFlags.TraceWarning) == SQLiteConnectionFlags.TraceWarning) { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "WARNING: Type mapping failed, returning default name \"{0}\" for type {1}.", defaultTypeName, typ)); } #endif return defaultTypeName; } /// <summary> /// Convert a DbType to a Type |
︙ | ︙ | |||
1155 1156 1157 1158 1159 1160 1161 1162 | }); } /// <summary> /// For a given type name, return a closest-match .NET type /// </summary> /// <param name="Name">The name of the type to match</param> /// <returns>The .NET DBType the text evaluates to.</returns> | > | | 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 | }); } /// <summary> /// For a given type name, return a closest-match .NET type /// </summary> /// <param name="Name">The name of the type to match</param> /// <param name="flags">The flags associated with the parent connection object.</param> /// <returns>The .NET DBType the text evaluates to.</returns> internal static DbType TypeNameToDbType(string Name, SQLiteConnectionFlags flags) { lock (_syncRoot) { if (_typeNames == null) _typeNames = GetSQLiteDbTypeMap(); if (String.IsNullOrEmpty(Name)) return DbType.Object; |
︙ | ︙ | |||
1186 1187 1188 1189 1190 1191 1192 | } } } DbType defaultDbType = DbType.Object; #if !NET_COMPACT_20 && TRACE_WARNING | > > | | | | > | 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 | } } } DbType defaultDbType = DbType.Object; #if !NET_COMPACT_20 && TRACE_WARNING if ((flags & SQLiteConnectionFlags.TraceWarning) == SQLiteConnectionFlags.TraceWarning) { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "WARNING: Type mapping failed, returning default type {0} for name \"{1}\".", defaultDbType, Name)); } #endif return defaultDbType; } #endregion private static object _syncRoot = new object(); |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteDataReader.cs.
︙ | ︙ | |||
1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 | if ((_commandBehavior & CommandBehavior.KeyInfo) != 0) LoadKeyInfo(); return true; } } /// <summary> /// Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. /// </summary> /// <param name="i">The index of the column to retrieve</param> /// <returns>A SQLiteType structure</returns> private SQLiteType GetSQLiteType(int i) | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 | if ((_commandBehavior & CommandBehavior.KeyInfo) != 0) LoadKeyInfo(); return true; } } /// <summary> /// This method attempts to query the flags associated with the database /// connection in use. If the database connection is disposed, the default /// flags will be returned. /// </summary> /// <param name="dataReader"> /// The data reader containing the databse connection to query the flags from. /// </param> /// <returns> /// The connection flags value. /// </returns> internal static SQLiteConnectionFlags GetFlags( SQLiteDataReader dataReader ) { try { if (dataReader != null) { SQLiteCommand command = dataReader._command; if (command != null) return SQLiteCommand.GetFlags(command); } } catch (ObjectDisposedException) { // do nothing. } return SQLiteConnectionFlags.Default; } /// <summary> /// Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. /// </summary> /// <param name="i">The index of the column to retrieve</param> /// <returns>A SQLiteType structure</returns> private SQLiteType GetSQLiteType(int i) |
︙ | ︙ | |||
1312 1313 1314 1315 1316 1317 1318 | if (_fieldTypeArray[i] == null) _fieldTypeArray[i] = new SQLiteType(); typ = _fieldTypeArray[i]; // If not initialized, then fetch the declared column datatype and attempt to convert it // to a known DbType. if (typ.Affinity == TypeAffinity.Uninitialized) | | | 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 | if (_fieldTypeArray[i] == null) _fieldTypeArray[i] = new SQLiteType(); typ = _fieldTypeArray[i]; // If not initialized, then fetch the declared column datatype and attempt to convert it // to a known DbType. if (typ.Affinity == TypeAffinity.Uninitialized) typ.Type = SQLiteConvert.TypeNameToDbType(_activeStatement._sql.ColumnType(_activeStatement, i, out typ.Affinity), GetFlags(this)); else typ.Affinity = _activeStatement._sql.ColumnAffinity(_activeStatement, i); return typ; } /// <summary> |
︙ | ︙ |
Changes to Tests/basic.eagle.
︙ | ︙ | |||
1452 1453 1454 1455 1456 1457 1458 | } -constraints {eagle SQLite System.Data.SQLite System.Data.SQLite.Linq} \ -result {}} ############################################################################### runTest {test data-1.27 {VARCHAR / NVARCHAR types with spaces} -body { list [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ | | | | | | | | 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 | } -constraints {eagle SQLite System.Data.SQLite System.Data.SQLite.Linq} \ -result {}} ############################################################################### runTest {test data-1.27 {VARCHAR / NVARCHAR types with spaces} -body { list [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType VARCHAR None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType NVARCHAR None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType VARCHAR(1) None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType NVARCHAR(1) None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType "VARCHAR (1)" None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType "NVARCHAR (1)" None] \ } -constraints {eagle System.Data.SQLite} -result \ {AnsiString String AnsiString String AnsiString String}} ############################################################################### runTest {test data-1.28 {SetMemoryStatus method} -setup { # |
︙ | ︙ | |||
2497 2498 2499 2500 2501 2502 2503 | LOGICAL LONG LONGCHAR LONGTEXT LONGVARCHAR MEMO MONEY NCHAR NOTE NTEXT \ NUMBER NUMERIC NVARCHAR OLEOBJECT RAW REAL SINGLE SMALLDATE SMALLINT \ SMALLUINT STRING TEXT TIME TIMESTAMP TINYINT TINYSINT UINT UINT8 UINT16 \ UINT32 UINT64 ULONG UNIQUEIDENTIFIER UNSIGNEDINTEGER UNSIGNEDINTEGER8 \ UNSIGNEDINTEGER16 UNSIGNEDINTEGER32 UNSIGNEDINTEGER64 VARBINARY VARCHAR \ VARCHAR2 YESNO] { lappend result [list $typeName [object invoke -flags +NonPublic \ | | | 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 | LOGICAL LONG LONGCHAR LONGTEXT LONGVARCHAR MEMO MONEY NCHAR NOTE NTEXT \ NUMBER NUMERIC NVARCHAR OLEOBJECT RAW REAL SINGLE SMALLDATE SMALLINT \ SMALLUINT STRING TEXT TIME TIMESTAMP TINYINT TINYSINT UINT UINT8 UINT16 \ UINT32 UINT64 ULONG UNIQUEIDENTIFIER UNSIGNEDINTEGER UNSIGNEDINTEGER8 \ UNSIGNEDINTEGER16 UNSIGNEDINTEGER32 UNSIGNEDINTEGER64 VARBINARY VARCHAR \ VARCHAR2 YESNO] { lappend result [list $typeName [object invoke -flags +NonPublic \ System.Data.SQLite.SQLiteConvert TypeNameToDbType $typeName None]] } set result } -cleanup { unset -nocomplain result typeName } -constraints {eagle System.Data.SQLite} -result {{BIGINT Int64} {BIGUINT\ UInt64} {BINARY Binary} {BIT Boolean} {BLOB Binary} {BOOL Boolean} {BOOLEAN\ Boolean} {CHAR AnsiStringFixedLength} {CLOB String} {COUNTER Int64} {CURRENCY\ |
︙ | ︙ |
Changes to Tests/tkt-47f4bac575.eagle.
︙ | ︙ | |||
25 26 27 28 29 30 31 | } -body { foreach dbType [list \ AnsiString Binary Byte Boolean Currency Date DateTime Decimal \ Double Guid Int16 Int32 Int64 Object SByte Single String Time \ UInt16 UInt32 UInt64 VarNumeric AnsiStringFixedLength \ StringFixedLength Xml DateTime2 DateTimeOffset] { lappend result [list $dbType [object invoke -flags +NonPublic \ | | | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | } -body { foreach dbType [list \ AnsiString Binary Byte Boolean Currency Date DateTime Decimal \ Double Guid Int16 Int32 Int64 Object SByte Single String Time \ UInt16 UInt32 UInt64 VarNumeric AnsiStringFixedLength \ StringFixedLength Xml DateTime2 DateTimeOffset] { lappend result [list $dbType [object invoke -flags +NonPublic \ System.Data.SQLite.SQLiteConvert DbTypeToTypeName $dbType None]] } set result } -cleanup { unset -nocomplain result dbType } -constraints {eagle System.Data.SQLite} -result {{AnsiString VARCHAR} {Binary\ BLOB} {Byte TINYINT} {Boolean BIT} {Currency {}} {Date {}} {DateTime DATETIME}\ {Decimal DECIMAL} {Double REAL} {Guid UNIQUEIDENTIFIER} {Int16 SMALLINT} {Int32\ |
︙ | ︙ |
Changes to Tests/tkt-fe50b8c2e8.eagle.
︙ | ︙ | |||
18 19 20 21 22 23 24 | package require System.Data.SQLite.Test runSQLiteTestPrologue ############################################################################### runTest {test tkt-fe50b8c2e8-1.1 {compatibility data types} -body { list [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ | | | | | | | | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | package require System.Data.SQLite.Test runSQLiteTestPrologue ############################################################################### runTest {test tkt-fe50b8c2e8-1.1 {compatibility data types} -body { list [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType VARCHAR2 None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType CLOB None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType NUMBER None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ TypeNameToDbType RAW None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ DbTypeToTypeName AnsiString None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ DbTypeToTypeName String None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ DbTypeToTypeName Decimal None] \ [object invoke -flags +NonPublic System.Data.SQLite.SQLiteConvert \ DbTypeToTypeName Binary None] } -constraints {eagle System.Data.SQLite} -result \ {AnsiString String Decimal Binary VARCHAR NVARCHAR DECIMAL BLOB}} ############################################################################### runSQLiteTestEpilogue runTestEpilogue |