⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgsql_function.cpp

📁 C++连接一写常用数据库的接口
💻 CPP
字号:
/* * pgsql_function testing function calls with Postgresql and dbConnect API * Copyright (C) 2004 Johnathan Ingram, jingram@rogueware.org * * This library is free software; you can redistribute it and/or *   modify it under the terms of the GNU Lesser General Public *   License as published by the Free Software Foundation; either *   version 2.1 of the License, or (at your option) any later version. * *   This library is distributed in the hope that it will be useful, *   but WITHOUT ANY WARRANTY; without even the implied warranty of *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *   Lesser General Public License for more details. * *   You should have received a copy of the GNU Lesser General Public *   License along with this library; if not, write to the Free Software *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US * * Note: This example requires the Func1Test function as defined in the SQL for Postgresql */#include <iostream>#include <string>#include "dbconn/dbconnect.h"using namespace std;int main(      int argc, char** argv){   DbConnectionVar driver;   DbQueryVar      conn;   string          sqlQuery;         try   {      driver = new DbConnection(DbConnection::POSTGRESQL, "./dbconnect.cfg");      // Connect to the database.       driver->connect("dbconnect", "letmein", "dbConnectDB", "localhost");      // Get a query connection object      conn = driver->requestQueryConnection();            // Test 1: Postgresql Call to an Existing Function      cout << endl << endl;      cout << "TEST 1: Postgresql Call to an Existing Function" << endl;      cout << "---------------------------" << endl;            // Note:        //  Because in Postgresql you cannot give names to the parameters in functions, dbConnect API      //    will assign parameter names as follows: :(      //      First  Parameter: param1   Use bindParam("param1")->      //      Second Parameter: param2   Use bindParam("param2")->      //      .... (and so forth)      //  A result from a function will always be returned in a bind parameter named "result"      sqlQuery =          "FUNC1TEST";      conn->command(sqlQuery);            conn->bindParam("param1")->setLong(5);      //conn->bindParam("param2")->setLong(10);      conn->execute();            cout << "Function Result : " << conn->bindParam("result")->asString() << endl;      cout << "Expecting Result: 10" << endl;      // Test 2: Postgresql Call to an non-existing Function      cout << endl << endl;      cout << "TEST 2: Postgresql Call to an non-existing Function" << endl;      cout << "---------------------------" << endl;            sqlQuery =          "FUNC55TEST";      conn->command(sqlQuery);            conn->bindParam("param1")->setLong(5);      conn->bindParam("param2")->setLong(10);      conn->execute();         }   catch(BaseException &ex)   {      // Only need to catch a single exception. Can use 'name' etc to determine the actual exception      cout << "DbConnect Exception: " << ex.name << endl            << "  " << ex.code << " : " << ex.description << endl;   }   catch(...)   {      cout << "An Unknown exception has been trapped!\n" << endl;   }   cout << endl;           // The 'conn' and 'driver' objects are smart pointers and will cleanup as soon as they go out of scope         return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -