loadField method

  1. @override
bool loadField(
  1. TSQLCursor cursor,
  2. TFieldDef fieldDef,
  3. TValueBuffer buffer,
  4. TBoolRef createBlob,
)
override

Implementation

@override
bool loadField(TSQLCursor cursor, TFieldDef fieldDef, TValueBuffer buffer,
    TBoolRef createBlob) {
  final c = cursor as TWapCursor;
  if (c.rowIndex < 0 || c.rowIndex >= c.rows.length) return false;
  final v = c.rows[c.rowIndex][fieldDef.name];
  if (v == null) return false;
  createBlob.value = false;
  // @@@ DateTime fields: the gateway may return a string; converted back to DateTime here
  if ((fieldDef.dataType == TFieldType.ftDateTime ||
          fieldDef.dataType == TFieldType.ftDate ||
          fieldDef.dataType == TFieldType.ftTime) &&
      v is String) {
    buffer.value = DateTime.tryParse(v.replaceFirst(" ", "T")) ?? v;
  } else {
    buffer.value = v;
  }
  return true;
}