private JObject ReadRow(TableDefinition table, SqliteDataReader reader) { JObject row = new JObject(); for (int i = 0; i < reader.FieldCount; i++) { if (!reader.IsDBNull(i)) { string name = reader.GetName(i); object value = new object(); if (reader.GetDataTypeName(i) == "DATETIME") { try { value = reader.GetDouble(reader.GetOrdinal(name)); } catch (FormatException ex) { value = reader.GetInt64(reader.GetOrdinal(name)); } } else { value = reader.GetValue(i); } ColumnDefinition column; if (table.TryGetValue(name, out column)) { JToken jVal = SqlHelpers.DeserializeValue(value, column.StoreType, column.JsonType); row[name] = jVal; } else { row[name] = value == null ? null : JToken.FromObject(value); } } } return(row); }
private JObject ReadRow(TableDefinition table, sqlite3_stmt statement) { var row = new JObject(); for (int i = 0; i < raw.sqlite3_column_count(statement); i++) { string name = raw.sqlite3_column_name(statement, i).utf8_to_string(); object value = SQLitePCLRawHelpers.GetValue(statement, i); if (table.TryGetValue(name, out ColumnDefinition column)) { JToken jVal = SqlHelpers.DeserializeValue(value, column.StoreType, column.JsonType); row[name] = jVal; } else { row[name] = value == null ? null : JToken.FromObject(value); } } return(row); }
private JObject ReadRow(TableDefinition table, ISQLiteStatement statement) { var row = new JObject(); for (int i = 0; i < statement.ColumnCount; i++) { string name = statement.ColumnName(i); object value = statement[i]; ColumnDefinition column; if (table.TryGetValue(name, out column)) { JToken jVal = SqlHelpers.DeserializeValue(value, column.StoreType, column.JsonType); row[name] = jVal; } else { row[name] = value == null ? null : JToken.FromObject(value); } } return(row); }