int Q3SqlCursor::del(bool invalidate) { QSqlIndex idx = primaryIndex(false); if (idx.isEmpty()) return del(qWhereClause(&d->editBuffer, d->nm, QLatin1String("and"), driver()), invalidate); return del(toString(primaryIndex(), &d->editBuffer, d->nm, QString(QLatin1Char('=')), QLatin1String("and")), invalidate); }
int QSqlCursor::del( bool invalidate ) { QSqlIndex idx = primaryIndex( FALSE ); if ( idx.isEmpty() ) return del( qWhereClause( &d->editBuffer, d->nm, "and", driver() ), invalidate ); else return del( toString( primaryIndex(), &d->editBuffer, d->nm, "=", "and" ), invalidate ); }
QSqlRecord* Q3SqlCursor::primeUpdate() { // memorize the primary keys as they were before the user changed the values in editBuffer QSqlRecord* buf = editBuffer(true); QSqlIndex idx = primaryIndex(false); if (!idx.isEmpty()) d->editIndex = toString(idx, buf, d->nm, QString(QLatin1Char('=')), QLatin1String("and")); else d->editIndex = qWhereClause(buf, d->nm, QLatin1String("and"), driver()); return buf; }
QSqlRecord* QSqlCursor::primeUpdate() { // memorize the primary keys as they were before the user changed the values in editBuffer QSqlRecord* buf = editBuffer( TRUE ); QSqlIndex idx = primaryIndex( FALSE ); if ( !idx.isEmpty() ) d->editIndex = toString( idx, buf, d->nm, "=", "and" ); else d->editIndex = qWhereClause( buf, d->nm, "and", driver() ); return buf; }
QString qWhereClause(QSqlRecord* rec, const QString& prefix, const QString& sep, const QSqlDriver* driver) { static QString blank(QLatin1Char(' ')); QString filter; bool separator = false; for (int j = 0; j < rec->count(); ++j) { QSqlField f = rec->field(j); if (rec->isGenerated(j)) { if (separator) filter += sep + blank; filter += qWhereClause(prefix, &f, driver); filter += blank; separator = true; } } return filter; }
QString qWhereClause( QSqlRecord* rec, const QString& prefix, const QString& sep, const QSqlDriver* driver ) { static QString blank( " " ); QString filter; bool separator = FALSE; for ( uint j = 0; j < rec->count(); ++j ) { QSqlField* f = rec->field( j ); if ( rec->isGenerated( j ) ) { if ( separator ) filter += sep + blank; filter += qWhereClause( prefix, f, driver ); filter += blank; separator = TRUE; } } return filter; }