42 " WHERE folderID = %u",
45 sLog.Error(
"BookmarkDB::GetBMData()",
"Failed to query bookmarks for folderID %u: %s.", folderID, res.
error.
c_str() );
69 if (!
sDatabase.RunQuery(res,
"SELECT bookmarkID FROM bookmarks WHERE folderID = %u", folderID)) {
70 sLog.Error(
"BookmarkDB::GetBookmarkByFolderID()",
"Failed to query bookmarks for folderID %u: %s.", folderID, res.
error.
c_str() );
76 bmIDs.push_back(row.
GetInt(0));
95 " WHERE ownerID = %u",
98 sLog.Error(
"BookmarkDB::GetBookmarks()",
"Failed to query bookmarks for owner %u: %s.", ownerID, res.
error.
c_str() );
142 " FROM bookmarkFolders"
143 " WHERE ownerID = %u",
146 sLog.Error(
"BookmarkDB::GetFolders()",
"Failed to query bookmarks for owner %u: %s.", ownerID, res.
error.
c_str() );
168 if (!
sDatabase.RunQuery(res,
"SELECT memo FROM bookmarks WHERE bookmarkID = %u", bookmarkID)) {
169 sLog.Error(
"BookmarkDB::GetBookmarkName()",
"Failed to query bookmarkID %u: %s.", bookmarkID, res.
error.
c_str() );
183 if (!
sDatabase.RunQuery(res,
"SELECT memo, note FROM bookmarks WHERE bookmarkID = %u", bookmarkID)) {
184 sLog.Error(
"BookmarkDB::GetBookmarkName()",
"Failed to query bookmarkID %u: %s.", bookmarkID, res.
error.
c_str() );
215 " WHERE bookmarkID = %u ", bookmarkID))
217 sLog.Error(
"BookmarkDB::GetBookmarkInformation()",
"Error in query: %s", res.
error.
c_str() );
238 std::string eMemo, eNote;
245 "INSERT INTO bookmarks"
246 " (ownerID, itemID, typeID, memo, created, x, y, z, locationID, note, creatorID, folderID)"
247 " VALUES (%u, %u, %u, '%s', %f, %f, %f, %f, %u, '%s', %u, %u) ",
251 sLog.Error(
"BookmarkDB::SaveNewBookmarkToDatabase(1)",
"Error in query, Bookmark content couldn't be saved: %s", err.
c_str() );
255 "INSERT INTO bookmarks"
256 " (ownerID, itemID, typeID, memo, created, x, y, z, locationID, note, creatorID)"
257 " VALUES (%u, %u, %u, '%s', %f, %f, %f, %f, %u, '%s', %u) ",
261 sLog.Error(
"BookmarkDB::SaveNewBookmarkToDatabase(2)",
"Error in query, Bookmark content couldn't be saved: %s", err.
c_str() );
270 "DELETE FROM bookmarks"
271 " WHERE ownerID = %u AND bookmarkID = %u", ownerID, bookmarkID))
273 sLog.Error(
"BookmarkDB::DeleteBookmarkFromDatabase()",
"Error in query: %s", err.
c_str() );
282 std::stringstream st;
283 std::string listString;
285 std::size_t size = bookmarkList->size();
286 for (
int8 i=0; i<size; ++i) {
287 st << bookmarkList->at(i);
293 if (!
sDatabase.RunQuery(err,
"DELETE FROM bookmarks WHERE bookmarkID IN (%s)", st.str().
c_str())) {
294 sLog.Error(
"BookmarkDB::DeleteBookmarksFromDatabase()",
"Error in query: %s", err.
c_str() );
303 sDatabase.RunQuery(err,
"UPDATE bookmarks SET ownerID = %u WHERE bookmarkID = %u", ownerID, bookmarkID);
309 std::string memo_fixed =
"";
310 sDatabase.DoEscapeString(memo_fixed, memo.c_str());
313 if (!
sDatabase.RunQuery(err,
"UPDATE bookmarks SET memo = '%s', note = '%s', folderID = %u WHERE bookmarkID = %u AND ownerID = %u",
314 memo_fixed.
c_str(), note.c_str(), folderID, bookmarkID, ownerID))
316 sLog.Error(
"BookmarkDB::UpdateBookmarkInDatabase()",
"Error in query: %s", err.
c_str() );
326 std::string eName =
"";
327 sDatabase.DoEscapeString( eName, folderName.c_str());
330 if (!
sDatabase.RunQueryLID(err, folderID,
"INSERT INTO bookmarkFolders (folderName, ownerID, creatorID) VALUES ('%s', %u, %u) ",
331 eName.
c_str(), ownerID, ownerID ))
333 sLog.Error(
"BookmarkDB::SaveNewFolderToDatabase()",
"Error in query, Folder couldn't be saved: %s", err.
c_str() );
342 std::string eName =
"";
343 sDatabase.DoEscapeString( eName, folderName.c_str());
346 if (!
sDatabase.RunQuery(err,
"UPDATE bookmarkFolders SET folderName = '%s' WHERE folderID = %u",
347 eName.
c_str(), folderID))
349 sLog.Error(
"BookmarkDB::UpdateFolder()",
"Error in query, Folder couldn't be saved: %s", err.
c_str() );
359 if (!
sDatabase.RunQuery(err,
"DELETE FROM bookmarkFolders WHERE folderID = %u", folderID))
360 sLog.Error(
"BookmarkDB::DeleteFolder(1)",
"Error in query: %s", err.
c_str() );
363 if (!
sDatabase.RunQuery(err,
"UPDATE bookmarks SET ownerID = 1 WHERE folderID = %u", folderID))
364 sLog.Error(
"BookmarkDB::DeleteFolder(2)",
"Error in query: %s", err.
c_str() );
371 std::stringstream st;
372 std::size_t size = bookmarkList->size();
373 for (
int8 i=0; i<size; ++i) {
374 st << bookmarkList->at(i);
380 sDatabase.RunQuery(err,
"UPDATE bookmarks SET folderID = %i WHERE bookmarkID IN (%s)", folderID, st.str().
c_str());
387 "SELECT ownerID, itemID, typeID, memo, created, x, y, z, "
388 "locationID, note, creatorID, folderID "
389 "FROM bookmarks WHERE bookmarkID = %u", data.
bookmarkID))
391 sLog.Error(
"BookmarkDB::GetVoucherData()",
"Failed to query data for Bookmark %u: %s.", data.
bookmarkID, res.
error.
c_str() );
void GetVoucherData(BmData &data)
const char * GetText(uint32 index) const
itemID[count] Create count or of the specified() x() y(z)-Jump to the specified position in space.Stopped." ) COMMAND( translocate
float GetFloat(uint32 index) const
int32 GetInt(uint32 index) const
void GetBookmarkByFolderID(int32 folderID, std::vector< int32 > &bmIDs)
PyRep * GetBookmarksInFolder(uint32 folderID)
uint32 SaveNewFolder(std::string folderName, uint32 ownerID)
uint32 GetUInt(uint32 index) const
double GetDouble(uint32 index) const
Python floating point number.
bool UpdateBookmark(uint32 bookmarkID, uint32 ownerID, std::string memo, std::string note, uint32 folderID=0)
bool GetBookmarkInformation(uint32 bookmarkID, uint32 &itemID, uint16 &typeID, uint32 &locationID, double &x, double &y, double &z)
bool DeleteBookmarks(std::vector< int32 > *bookmarkList)
bool GetRow(DBResultRow &into)
#define sLog
Evaluates to a NewLog instance.
void ChangeOwner(uint32 bookmarkID, uint32 ownerID=1)
bool DeleteBookmark(uint32 ownerID, uint32 bookmarkID)
const char * c_str() const
bool UpdateFolder(int32 folderID, std::string folderName)
void SaveNewBookmark(BmData &data)
static const char * GetBookmarkName(uint32 bookmarkID)
void SetItem(size_t index, PyRep *object)
Stores Python object.
bool IsNull(uint32 index) const
bool DeleteFolder(int32 folderID)
PyRep * GetBookmarks(uint32 ownerID)
PyRep * GetFolders(uint32 ownerID)
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type()() itemID() copy() materialLevel()() itemID(attributeID)-Retrieves attribute value." ) COMMAND( setattr
void MoveBookmarkToFolder(int32 folderID, std::vector< int32 > *bookmarkList)
int64 GetInt64(uint32 index) const
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
static PyTuple * GetBookmarkDescription(uint32 bookmarkID)