public static IDictionary <string, object> ParseSQLiteLinha(this SQLitePCL.sqlite3_stmt stQuery, string[] colunas) { var linha = new Dictionary <string, object>(); for (int i = 0; i < colunas.Length; i++) { var coluna = colunas[i]; var tipoColuna = SQLite3.ColumnType(stQuery, i); switch (tipoColuna) { case SQLite3.ColType.Blob: linha.Add(coluna, SQLite3.ColumnBlob(stQuery, i)); break; case SQLite3.ColType.Float: linha.Add(coluna, SQLite3.ColumnDouble(stQuery, i)); break; case SQLite3.ColType.Integer: linha.Add(coluna, SQLite3.ColumnInt(stQuery, i)); break; case SQLite3.ColType.Null: linha.Add(coluna, null); break; case SQLite3.ColType.Text: linha.Add(coluna, SQLite3.ColumnString(stQuery, i)); break; } } return(linha); }
private object[] RunSql(string sqlString) { SQLitePCL.sqlite3_stmt stQuery = null; try { stQuery = SQLite3.Prepare2(database.DatabaseNotAsync.Handle, sqlString); var colLenght = SQLite3.ColumnCount(stQuery); while (SQLite3.Step(stQuery) == SQLite3.Result.Row) { var obj = new object[colLenght]; for (int i = 0; i < colLenght; i++) { var colType = SQLite3.ColumnType(stQuery, i); switch (colType) { case SQLite3.ColType.Blob: obj[i] = SQLite3.ColumnBlob(stQuery, i); break; case SQLite3.ColType.Float: obj[i] = SQLite3.ColumnDouble(stQuery, i); break; case SQLite3.ColType.Integer: obj[i] = SQLite3.ColumnInt(stQuery, i); break; case SQLite3.ColType.Null: obj[i] = null; break; case SQLite3.ColType.Text: obj[i] = SQLite3.ColumnString(stQuery, i); break; } } return(obj); } return(null); } catch (Exception) { return(null); } finally { if (stQuery != null) { SQLite3.Finalize(stQuery); } } }
public List <object[]> ExecuteCustomQuery() { if (SQLiteConnection.Trace) { Debug.WriteLine("Executing Query: " + this); } var stmt = Prepare(); try { var colLenght = SQLite3.ColumnCount(stmt); var lstRes = new List <object[]>(); while (SQLite3.Step(stmt) == SQLite3.Result.Row) { var obj = new object[colLenght]; lstRes.Add(obj); for (int i = 0; i < colLenght; i++) { var colType = SQLite3.ColumnType(stmt, i); switch (colType) { case SQLite3.ColType.Blob: obj[i] = SQLite3.ColumnBlob(stmt, i); break; case SQLite3.ColType.Float: obj[i] = SQLite3.ColumnDouble(stmt, i); break; case SQLite3.ColType.Integer: obj[i] = SQLite3.ColumnInt(stmt, i); break; case SQLite3.ColType.Null: obj[i] = null; break; case SQLite3.ColType.Text: obj[i] = SQLite3.ColumnString(stmt, i); break; } } } return(lstRes); } finally { SQLite3.Finalize(stmt); } }
private List <object[]> RunSql(string sqlString, bool includeColumnNamesAsFirstRow) { var lstRes = new List <object[]>(); SQLitePCL.sqlite3_stmt stQuery = null; try { stQuery = SQLite3.Prepare2(App.Database.DatabaseNotAsync.Handle, sqlString); var colLenght = SQLite3.ColumnCount(stQuery); if (includeColumnNamesAsFirstRow) { var obj = new object[colLenght]; lstRes.Add(obj); for (int i = 0; i < colLenght; i++) { obj[i] = SQLite3.ColumnName(stQuery, i); } } while (SQLite3.Step(stQuery) == SQLite3.Result.Row) { var obj = new object[colLenght]; lstRes.Add(obj); for (int i = 0; i < colLenght; i++) { var colType = SQLite3.ColumnType(stQuery, i); switch (colType) { case SQLite3.ColType.Blob: obj[i] = SQLite3.ColumnBlob(stQuery, i); break; case SQLite3.ColType.Float: obj[i] = SQLite3.ColumnDouble(stQuery, i); break; case SQLite3.ColType.Integer: obj[i] = SQLite3.ColumnInt(stQuery, i); break; case SQLite3.ColType.Null: obj[i] = null; break; case SQLite3.ColType.Text: obj[i] = SQLite3.ColumnString(stQuery, i); break; } } } return(lstRes); } catch (Exception) { return(null); } finally { if (stQuery != null) { SQLite3.Finalize(stQuery); } } }