本文整理汇总了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);
}