void AddProductsForm::FillProductsList() { try { IBPP::Transaction transaction = IBPP::TransactionFactory(db); transaction->Start(); IBPP::Statement statement = IBPP::StatementFactory(db, transaction); statement->Execute("SELECT * FROM \"PRODUCTS\""); IBPP::Row row; statement->Fetch(row); auto rows = statement->AffectedRows(); for (int i=0; i<rows; ++i) { int id; std::string name; row->Get(1, id); row->Get(2, name); ui.comboBox->addItem(name.c_str(), id); statement->Fetch(row); } ui.comboBox->setCurrentIndex(0); } catch (IBPP::Exception& exception) { std::string error = exception.ErrorMessage(); qDebug() << exception.ErrorMessage(); } }
void TsSqlDatabaseThread::test() { IBPP::Database db = IBPP::DatabaseFactory( "", "melchior:/var/firebird/test.fdb", "sysdba", "5735"); db->Connect(); IBPP::Transaction tr = IBPP::TransactionFactory(db); tr->Start(); IBPP::Statement st = IBPP::StatementFactory( db, tr, "select * from test2"); st->Execute(); if (st->Fetch()) { int cols = st->Columns(); for(int i = 1; i <= cols; ++i) { TsSqlVariant variant; setFromStatement(variant, &st, i); qDebug() << variant.asString(); } } }
int main() { try { // ------------------------------------------------------------ // L E C T U R A // ------------------------------------------------------------ try { IBPP::Database db = IBPP::DatabaseFactory("127.0.0.1", "testing", "SYSDBA", "pruebas"); db->Connect(); IBPP::Transaction tr = IBPP::TransactionFactory(db); tr->Start(); int id=0; std::string idServidor; mtk::nullable<mtk::DateTime> dt; IBPP::Statement st = IBPP::StatementFactory(db, tr); st->Execute("SELECT FIRST 10 * FROM ALARMS"); while (st->Fetch()) { st->Get(1, id); // acceso por índice cout << "id : " << id << std::endl; st->Get("SOURCE", idServidor); // acceso por nombre cout << "SOURCE : " << idServidor << endl; st->Get(st->ColumnNum("DB_TIME"), dt); // acceso por (índice -> nombre) cout << "DB_TIME : " << dt.Get() << endl; cout << endl; } tr->Commit(); db->Disconnect(); } MTK_CATCH_RETHROW("main", "reading error") // también se pueden hacer lecturas con parámetros // ------------------------------------------------------------ // E S C R I T U R A // ------------------------------------------------------------ try { IBPP::Database db = IBPP::DatabaseFactory("127.0.0.1", "testing", "SYSDBA", "pruebas"); db->Connect(); IBPP::Transaction tr = IBPP::TransactionFactory(db); tr->Start(); IBPP::Statement st = IBPP::StatementFactory(db, tr); st->Prepare( "INSERT INTO ALARMS (DB_TIME, SOURCE, DESCRIPTION)" "VALUES (?, ?, ?)" ); st->Set(1, mtk::dtNowLocal()); st->Set(2, MTK_SS("sc"<< mtk::dtNowLocal())); st->Set(3, MTK_SS("description" << mtk::dtNowLocal())); st->Execute(); tr->Commit(); db->Disconnect(); } MTK_CATCH_RETHROW("main", "reading error") #include "support/release_on_exit.hpp" return 0; } MTK_CATCH_CALLFUNCION(std::cout <<, "main", "error") #include "support/release_on_exit.hpp" return -1; }