addFieldToUpdateWherePart method
void
addFieldToUpdateWherePart(
- TStringRef sqlWhere,
- TUpdateMode updateMode,
- TField f, [
- TBoolRef? usedEmptyKey,
Implementation
void addFieldToUpdateWherePart(
TStringRef sqlWhere, TUpdateMode updateMode, TField f,
[TBoolRef? usedEmptyKey]) {
if (f.providerFlags.contains(TProviderFlag.pfInKey) ||
(updateMode == TUpdateMode.upWhereAll &&
f.providerFlags.contains(TProviderFlag.pfInWhere)) ||
(updateMode == TUpdateMode.upWhereChanged &&
f.providerFlags.contains(TProviderFlag.pfInWhere) &&
f.value != f.oldValue)) {
if (sqlWhere.value != '') {
sqlWhere.value = '${sqlWhere.value} and ';
}
final qn =
'${fieldNameQuoteChars[0]}${f.fieldName}${fieldNameQuoteChars[1]}';
// primary key normally cannot be null (original comment kept as-is)
if (f.dataSet != null && f.dataSet!.active && f.oldValue == null) {
// @@@ Empty key: both NULL and empty string need to be covered — see _emptyKeyCond
sqlWhere.value = '${sqlWhere.value}(${_emptyKeyCond(f, qn)}) ';
usedEmptyKey?.value = true;
} else {
sqlWhere.value = '${sqlWhere.value}($qn= :"OLD_${f.fieldName}") ';
}
}
}