diff --git a/postres_cpp/Makefile b/postres_cpp/Makefile new file mode 100644 index 0000000..80150ab --- /dev/null +++ b/postres_cpp/Makefile @@ -0,0 +1,5 @@ +postgres_connector: postgres_connector.cpp + g++ -o postgres_connector postgres_connector.cpp -lpqxx -lpq + +clean: + -rm postgres_connector \ No newline at end of file diff --git a/postres_cpp/postgres_connector b/postres_cpp/postgres_connector new file mode 100755 index 0000000..73b924c Binary files /dev/null and b/postres_cpp/postgres_connector differ diff --git a/postres_cpp/postgres_connector.cpp b/postres_cpp/postgres_connector.cpp new file mode 100644 index 0000000..f7ae29e --- /dev/null +++ b/postres_cpp/postgres_connector.cpp @@ -0,0 +1,57 @@ +#include +#include +#include +#include +#include + +#define HOST "127.0.0.1" +#define DATABASE "fabryka_sprzetu_it" +#define SQL "SELECT * FROM PC;" + +#define COL_W 15 //if some table contetnts have too much characters/numbers in it, change this value. + +using namespace std; +using namespace pqxx; + +int main() { + //welcome message & prompt + cout << "Welcome to MySQL connector. \nYou are trying to connect to host: " << HOST << "\nType your credentials to connect:\n"; + string username, password; + cout << "User: "; + cin >> username; + cout << "Password: "; + cin >> password; + + //prases the text to match the connection typedef input arg + stringstream stream; + stream << "dbname = " << DATABASE << " user = " << username << " password = " << password << " \ + hostaddr = " << HOST << " port = 5432"; + + try { + connection C(stream.str()); + if (!C.is_open()) return 1; //closes the program if there's an issue with connection + + nontransaction N(C); + result R(N.exec(SQL)); + + //print result of last used query + cout << SQL << endl; + + //print column names + for(int i=0; i<(int)R[0].size(); i++) + cout << right << setw(COL_W) << R.column_name(i); + cout << endl; + //print table contents + for (result::const_iterator r = R.begin(); r!=R.end(); r++){ + for(int i=0; i<(int)R[0].size(); i++) + cout << right << setw(COL_W) << r[i].as(); + cout << endl; + } + + //end connection + C.disconnect(); + } catch (const exception &e) { + cerr << e.what() << std::endl; + return 1; + } +} \ No newline at end of file