public static IAsyncOperation <string> executeSql(long connectionId, [ReadOnlyArray()] object[] args) { return(Task.Run <string>(() => { try { var query = (string)args[0]; var queryParams = (object[])args[1]; var connection = SQLiteConnectionManager.GetConnecionById(connectionId); var cmd = connection.CreateCommand(query, queryParams); List <Dictionary <string, object> > rows = cmd.ExecuteQuery <Dictionary <string, object> >(); var resultSet = new SqlResultSet(); for (var i = 0; i < rows.Count; i++) { resultSet.Rows.Add(ReadResultSetRow(rows[i])); } resultSet.RowsAffected = SQLite3.Changes(connection.Handle); resultSet.InsertId = SQLite3.LastInsertRowid(connection.Handle); return Serialize(typeof(SqlResultSet), resultSet); } catch (Exception ex) { // You can't access the original message text from JavaScript code. // http://msdn.microsoft.com/en-US/library/windows/apps/br230301.aspx#ThrowingExceptions // so we return it via custom object return Serialize(typeof(InvocationError), new InvocationError(ex)); } }).AsAsyncOperation()); }
public static string Disconnect(long connectionId) { try { SQLiteConnectionManager.CloseConnection(connectionId); } catch (Exception ex) { return(Serialize(typeof(InvocationError), new InvocationError(ex))); } return("{}"); }
public static string Connect(string dbName) { var result = new ConnectionInfo(); try { result.Id = SQLiteConnectionManager.CreateConnection(dbName);; } catch (Exception ex) { return(Serialize(typeof(InvocationError), new InvocationError(ex))); } return(Serialize(typeof(ConnectionInfo), result)); }