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 TableSchema::primaryKeyFieldName() const { QSqlTableModel model; model.setTable(tablename); QSqlIndex index = model.primaryKey(); if (index.isEmpty()) { return QString(); } QSqlField fi = index.field(0); return fi.name(); }
int TableSchema::primaryKeyIndex() const { QSqlTableModel model; model.setTable(tablename); QSqlIndex index = model.primaryKey(); if (index.isEmpty()) { return -1; } QSqlField fi = index.field(0); return model.record().indexOf(fi.name()); }