本文整理汇总了C++中db::Result::getLongLong方法的典型用法代码示例。如果您正苦于以下问题:C++ Result::getLongLong方法的具体用法?C++ Result::getLongLong怎么用?C++ Result::getLongLong使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类db::Result
的用法示例。
在下文中一共展示了Result::getLongLong方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: can_update_integer_attribute_bound_value
void test_a_db_with_a_connection_with_tables::can_update_integer_attribute_bound_value()
{
// insert new object
DB::Statement statement = connection->prepare(
"insert into object default values");
CPPUNIT_ASSERT(statement.isValid());
CPPUNIT_ASSERT(connection->execute(statement));
long long object_id = connection->lastInsertRowId();
CPPUNIT_ASSERT(object_id != 0);
// insert integer attribute
statement = connection->prepare(
"insert into attribute_integer (value,type,object_id) values (%lld,%d,%lld)",
1111,
1235,
object_id);
CPPUNIT_ASSERT(statement.isValid());
CPPUNIT_ASSERT(connection->execute(statement));
// prepare update integer attribute statement
statement = connection->prepare(
"update attribute_integer set value=? where type=%d and object_id=%lld",
1235,
object_id);
CPPUNIT_ASSERT(statement.isValid());
// bind long long value to the parameter an update the record
CPPUNIT_ASSERT(DB::Bindings(statement).bindInt64(1,2222));
CPPUNIT_ASSERT(connection->execute(statement));
// Retrieve the value from the record
DB::Statement retrieveStmt = connection->prepare(
"select value from attribute_integer as t where t.type=%d and t.object_id=%lld",
1235,
object_id);
CPPUNIT_ASSERT(retrieveStmt.isValid());
DB::Result result = connection->perform(retrieveStmt);
CPPUNIT_ASSERT_EQUAL(result.getLongLong(1), (long long)2222);
// verify that binding to a parameter before resetting the statement will fail.
DB::LogErrorHandler eh = DB::setLogErrorHandler(dummy_print);
DB::Bindings bindings(statement);
CPPUNIT_ASSERT(!bindings.bindInt(1,3333));
DB::setLogErrorHandler(eh);
// reset statement and bind another value to the statement
CPPUNIT_ASSERT(bindings.reset());
CPPUNIT_ASSERT(bindings.bindInt(1,3333));
// perform the update statement again with the newly bound value
CPPUNIT_ASSERT(connection->execute(statement));
// reset the retrieve statement and perform it again to get the latest value of the integer attribute
CPPUNIT_ASSERT(retrieveStmt.reset());
result = connection->perform(retrieveStmt);
CPPUNIT_ASSERT(result.isValid());
CPPUNIT_ASSERT_EQUAL(result.getLongLong(1), (long long)3333);
}
示例2: find
bool DBObject::find(long long objectId)
{
MutexLocker lock(_mutex);
if (_connection == NULL)
{
ERROR_MSG("Object is not connected to the database.");
return false;
}
if (objectId == 0) {
ERROR_MSG("Invalid object_id 0 passed to find");
return false;
}
// find the object in the database for the given object_id
DB::Statement statement = _connection->prepare(
"select id from object where id=%lld",
objectId);
if (!statement.isValid()) {
ERROR_MSG("Preparing object selection statement failed");
return false;
}
DB::Result result = _connection->perform(statement);
if (result.getLongLong(1) != objectId) {
ERROR_MSG("Failed to find object with id %lld",objectId);
return false;
}
_objectId = objectId;
return true;
}
示例3: can_update_text_attribute_bound_value
void test_a_db_with_a_connection_with_tables::can_update_text_attribute_bound_value()
{
can_insert_records();
// query all objects
DB::Statement statement = connection->prepare("select id from object");
CPPUNIT_ASSERT(statement.isValid());
DB::Result result = connection->perform(statement);
CPPUNIT_ASSERT(result.isValid());
long long object_id = result.getLongLong(1); // field indices start at 1
statement = connection->prepare(
"update attribute_text set value=? where type=%d and object_id=%lld",
1234,
object_id);
CPPUNIT_ASSERT(statement.isValid());
std::string msg("testing quote ' and accents é.");
CPPUNIT_ASSERT(DB::Bindings(statement).bindText(1,msg.c_str(),msg.size(),NULL));
CPPUNIT_ASSERT(connection->execute(statement));
statement = connection->prepare(
"select value from attribute_text as t where t.type=%d and t.object_id=%lld",
1234,
object_id);
result = connection->perform(statement);
CPPUNIT_ASSERT_EQUAL(std::string(result.getString(1)), msg);
}
示例4: can_update_text_attribute
void test_a_db_with_a_connection_with_tables::can_update_text_attribute()
{
can_insert_records();
// query all objects
DB::Statement statement = connection->prepare("select id from object");
CPPUNIT_ASSERT(statement.isValid());
DB::Result result = connection->perform(statement);
CPPUNIT_ASSERT(result.isValid());
long long object_id = result.getLongLong(1); // field indices start at 1
statement = connection->prepare(
"update attribute_text set value='test test test' where type=%d and object_id=%lld",
1234,
object_id);
CPPUNIT_ASSERT(statement.isValid());
CPPUNIT_ASSERT(connection->execute(statement));
}
示例5: can_cascade_delete_objects_and_attributes
void test_a_db_with_a_connection_with_tables::can_cascade_delete_objects_and_attributes()
{
can_insert_records();
DB::Statement statement = connection->prepare("select id from object");
DB::Result result = connection->perform(statement);
CPPUNIT_ASSERT(result.isValid());
long long object_id = result.getLongLong(1);
statement = connection->prepare("delete from object where id=%lld",object_id);
CPPUNIT_ASSERT(connection->execute(statement));
statement = connection->prepare("select * from attribute_text where object_id=%lld",object_id);
result = connection->perform(statement);
// Check cascade delete was successful.
CPPUNIT_ASSERT(!result.isValid());
}