private static void AddRows(sqlite3 handle, LiteTableBuilder table) { var columns = table.Columns; string query = GetTableQuery(table.Name, Array.ConvertAll(columns, c => c.Name)); var stmt = SQLite3.Prepare2(handle, query); try { while (SQLite3.Step(stmt) == SQLite3.Result.Row) { var row = table.AddRow(); for (int i = 0; i < columns.Length; i++) { var column = columns[i]; switch (column.Type) { case ColumnType.Int32: row.Write(i, SQLite3.ColumnInt(stmt, i)); break; case ColumnType.Single: row.Write(i, (float)SQLite3.ColumnDouble(stmt, i)); break; case ColumnType.String: row.Write(i, SQLite3.ColumnString(stmt, i)); break; } } } } finally { SQLite3.Finalize(stmt); } }
public LiteTableBuilder AddTable(string name, Column[] columns, int rowLength) { if (!tables.TrueForAll(t => t.Name != name)) { throw new Exception(); } var table = new LiteTableBuilder(this, name, columns, rowLength); tables.Add(table); AddString(name); foreach (var column in columns) { AddString(column.Name); } return(table); }
public RowBuilder(LiteTableBuilder table, byte[] data) { this.table = table; this.data = data; }