saveAll method

Future<List<BoolResult>> saveAll(
  1. String pSql,
  2. List<TableBase> objList
)

Implementation

Future<List<BoolResult>> saveAll(String pSql, List<TableBase> objList) async {
  final results = <BoolResult>[];
  if (openedBatch[_dbModel!.databaseName!] == null) {
    final Database db = (await this.db)!;
    for (var t in objList) {
      final result = BoolResult(success: false);
      try {
        final o = t.toMap(forQuery: true);
        if (o[_primaryKeyList![0]] != null) {
          final uresult = await db.rawInsert(pSql, t.toArgsWithIds());
          if (uresult > 0) {
            result.successMessage =
                'id=${o[_primaryKeyList![0]].toString()} upserted successfully';
          }
        } else {
          final iresult = await db.insert(_tableName!, o);
          if (iresult > 0) {
            result.successMessage =
                'id=${iresult.toString()} inserted  successfully';
          }
        }
        result.success = true;
      } catch (e) {
        result
          ..successMessage = null
          ..errorMessage = e.toString();
      }
      results.add(result);
    }
  } else {
    for (var t in objList) {
      final o = t.toMap(forQuery: true);
      if (o[_primaryKeyList![0]] != null) {
        openedBatch[_dbModel!.databaseName!]!.update(_tableName!, o);
      } else {
        openedBatch[_dbModel!.databaseName!]!.insert(_tableName!, o);
      }
    }
  }
  return results;
}