Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool Execute(char * command, ExecStatusType type) {
- res = PQexec(conn, command);
- if (!res || PQresultStatus(res) != type) {
- fprintf(stderr, "Error executing query: %s\n", PQresultErrorMessage(res));
- PQclear(res);
- exit(1);
- }
- return true;
- }
- void InitSystem() {
- /* DROPPING */
- Execute("DROP TABLE customer", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("DROP TABLE account", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("DROP TABLE ownsacc", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("DROP TABLE branch", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("DROP TABLE managesacc", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("DROP TABLE withdrawal", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("DROP TABLE transfer", PGRES_COMMAND_OK);
- PQclear(res);
- /* INITING */
- Execute("CREATE TABLE customer AS SELECT * FROM course_customer", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("CREATE TABLE account AS SELECT * FROM course_account", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("CREATE TABLE ownsacc AS SELECT * FROM course_ownsacc", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("CREATE TABLE branch AS SELECT * FROM course_branch", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("CREATE TABLE managesacc AS SELECT * FROM course_managesacc", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("CREATE TABLE withdrawal AS SELECT * FROM course_withdrawal", PGRES_COMMAND_OK);
- PQclear(res);
- Execute("CREATE TABLE transfer AS SELECT * FROM course_transfer", PGRES_COMMAND_OK);
- PQclear(res);
- }
- void Prepare_Aux(int x, char * name, char * address) {
- char cmd[512];
- sprintf(cmd, "INSERT INTO customer VALUES (%d, '%s', '%s')",x,name,address);
- Execute(cmd, PGRES_COMMAND_OK);
- PQclear(res);
- addAccount(x + 100, x, (x % 5) + 10);
- }
- void PrepareForTest1() {
- InitSystem();
- char cmd[512];
- Prepare_Aux(1, "Jon Snow", "Castle Black");
- Prepare_Aux(2, "Ned Stark", "Winterfell");
- Prepare_Aux(3, "Tyrion Lannister", "Kings Landing");
- Prepare_Aux(4, "Sansa Stark", "Winterfell");
- Prepare_Aux(5, "Arya Stark", "Winterfell");
- Prepare_Aux(6, "Theon Greyjoy", "Pike");
- Prepare_Aux(7, "Jaime Lannister", "Kings Landing");
- Prepare_Aux(8, "Cersei Lannister", "Kings Landing");
- Prepare_Aux(9, "Daenerys Targaryen_The_Unburnt_Queen_of_the_Andals_the_Rhoynar_and_of_the_First_Men_Queen_of_Meereen_Khaleesi_of_the_Great_Grass_Sea_Breaker_of_Chains_Mother_of_Dragons", "Meereen");
- Prepare_Aux(10, "Viserys Targaryen", "Heaven or Hell");
- Prepare_Aux(11, "Joffrey Baratheon", "Hell for sure");
- Prepare_Aux(12, "Robert Baratheon", "Heaven probably");
- Prepare_Aux(13, "Robb Stark", "Winterfell");
- Prepare_Aux(14, "Ramsay Bolton", "We dont know");
- Prepare_Aux(15, "Jorah Mormont", "Meereen");
- sprintf(cmd, "UPDATE account SET Balance = 100, Overdraft = -1000 WHERE anumber = 100");
- Execute(cmd, PGRES_COMMAND_OK);
- PQclear(res);
- sprintf(cmd, "UPDATE account SET Balance = 10000,Overdraft = -100000 WHERE ANumber = 102");
- Execute(cmd, PGRES_COMMAND_OK);
- PQclear(res);
- sprintf(cmd, "UPDATE account SET Balance = 2100000,Overdraft = -123456 WHERE ANumber = 103");
- Execute(cmd, PGRES_COMMAND_OK);
- PQclear(res);
- sprintf(cmd, "UPDATE account SET Balance = 3100000,Overdraft = -223456 WHERE ANumber = 107");
- Execute(cmd, PGRES_COMMAND_OK);
- PQclear(res);
- sprintf(cmd, "UPDATE account SET Balance = 3990000,Overdraft = -223456 WHERE ANumber = 108");
- Execute(cmd, PGRES_COMMAND_OK);
- PQclear(res);
- printf("INIT DONE!");
- }
- ////////////////////////
- int main(int argc, char** argv) {
- /* Make a connection to the DB. If parameters omitted, default values are used */
- char connect_param[CMD_SIZE + 2];
- sprintf(connect_param, "host=pgsql.cs.technion.ac.il dbname=%s user=%s password=%s",
- USERNAME, USERNAME, PASSWORD);
- conn = PQconnectdb(connect_param);
- if (!conn || PQstatus(conn) == CONNECTION_BAD) {
- printf("Connection to server failed: %s\n", PQerrorMessage(conn));
- PQfinish(conn);
- return 1;
- }
- /* RESETTING TABLES */
- PrepareForTest1();
- parseInput();
- PQfinish(conn);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement