本文整理匯總了C++中SqlQuery::lastInsertId方法的典型用法代碼示例。如果您正苦於以下問題:C++ SqlQuery::lastInsertId方法的具體用法?C++ SqlQuery::lastInsertId怎麽用?C++ SqlQuery::lastInsertId使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類SqlQuery
的用法示例。
在下文中一共展示了SqlQuery::lastInsertId方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: _appendAfter
QModelIndex ListModel::_appendAfter(ListItem* item, const QString& content, App::AppendMode mode)
{
SqlQuery sql;
ListItem* parent = item->parent();
if (!parent)
return QModelIndex(); // cannot append after the root
int row = mode == App::AppendAfter ? item->row() + 1 : item->row();
sql.prepare("UPDATE list_item SET weight = weight + 1 WHERE list_id = :list AND parent_id = :parent AND weight >= :weight");
sql.bindValue(":list", _listId);
sql.bindValue(":parent", parent->id());
sql.bindValue(":weight", row);
if (!sql.exec())
return QModelIndex();
sql.prepare("INSERT INTO list_item (list_id, parent_id, weight, content, created_at) VALUES (:list, :parent, :weight, :content, CURRENT_TIMESTAMP)");
sql.bindValue(":list", _listId);
sql.bindValue(":parent", parent->id());
sql.bindValue(":weight", row);
sql.bindValue(":content", content);
if (!sql.exec())
return QModelIndex();
int id = sql.lastInsertId().toInt();
beginInsertRows(indexFromItem(parent), row, row);
ListItem* newItem = new ListItem(_listId, id, content);
parent->insertChild(row, newItem);
if (isNewItemCheckable(item->parent(), row))
newItem->setCheckable(true);
endInsertRows();
return indexFromItem(newItem);
}
示例2: appendChild
QModelIndex ListModel::appendChild(const QModelIndex& parent, int row, QString content)
{
if (parent.isValid() && parent.column() != 0)
return QModelIndex();
ListItem* parentItem = itemFromIndex(parent);
if (!parentItem)
return QModelIndex();
SqlQuery sql;
sql.prepare("UPDATE list_item SET weight = weight + 1 WHERE parent_id = :parent AND weight >= :row");
sql.bindValue(":list", _listId);
sql.bindValue(":parent", parentItem->id());
sql.bindValue(":row", row);
if (!sql.exec())
return QModelIndex();
sql.prepare("INSERT INTO list_item (list_id, parent_id, weight, content, created_at) VALUES (:list, :parent, :row, :content, CURRENT_TIMESTAMP)");
sql.bindValue(":list", _listId);
sql.bindValue(":parent", parentItem->id());
sql.bindValue(":row", row);
sql.bindValue(":content", content);
if (!sql.exec())
return QModelIndex();
int id = sql.lastInsertId().toInt();
beginInsertRows(parent, row, row);
ListItem* newItem = new ListItem(_listId, id, content);
if (isNewItemCheckable(parentItem, row))
newItem->setCheckable(true);
parentItem->insertChild(row, newItem);
endInsertRows();
return indexFromItem(newItem);
}