Question
I need help fixing my code in c++. The program still fails to create a table because no database is being used. Here is the
I need help fixing my code in c++. The program still fails to create a table because no database is being used.
Here is the terminal output below. As you can see, despite using database db_1, it fails to create a table due to no database being use.
Here is the sql file test case with the expected output on the bottom. The expected output is that table tb_1 along with the data is created.
Here is my main.cpp file and table.h file that needs fixing
==== main.cpp ====
#include
#include "table.h"
using namespace std;
void parseInput(const string& input, vector int main(int argc, char* argv[]){ string input; vector while (input != ".EXIT"){ //main loop cout "; getline(cin, input); parseInput(input, commands); parseCommands(commands, tables); } return 0; } //getData function, grabs data return line string getData(string line){ auto it = find(line.begin(), line.end(), '('); line = string(it, line.end()); line = line.substr(1, line.size() - 2); replace(line.begin(), line.end(), ',', '|'); return line; } //getName function, gets name string getName(string line){ stringstream ss(line); string token; while (getline(ss, token, ' ')){ } return token; } //getTblName, gets table name string getTblName(string line){ stringstream ss(line); string token; int i = 0; while (getline(ss, token, ' ') && i & commands){ stringstream ss(input); string token; while (getline(ss, token, ';')){ commands.push_back(token); } } //parseCommands function, handles the database systems void parseCommands(vector for (auto i : commands){ if (i.find("CREATE DATABASE") != -1){ string dbName = getName(i); const int direrr = system(("mkdir " + dbName).c_str()); if (direrr == 0) cout else if (i.find("USE") != -1) { string dbName = getName(i); if (chdir(dbName.c_str()) == 0) { currDB = dbName; cout } else { cout } } else if (i.find("CREATE TABLE") != -1){ if (currDB.empty()){ cout size_t index = it - tables.begin(); //finds table index if it exists if (it != tables.end()){ cout commands.clear(); } ==== table.h ==== #pragma once #include using namespace std; class table{ public: string name; string db; string data; table(string tbName, string currDB, string currData){ name = tbName; db = currDB; data = currData; } table(string tbName, string currDB){ name = tbName; db = currDB; } string getName(){ return name; } string getData(){ return data; } void add(string line){ //puts add in substr line = line.substr(line.find("ADD") + 3); data.append(" | " + line); } ~table(){} //operator overload to check for equality to see if table exists bool operator==(table const& rhs){ if (name == rhs.name && db == rhs.db) return true; else false; } };& tables); //execute commands and modify tables string getName(string line); //get name string getTblName(string line); //get table name string getData(string line); //get data
tables;
& tables){ string currDB;
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started