#include <iostream>
#include <unistd.h>
#include <sqlite3.h>
#include <cstring>
#define print_error(pdb) {\
std::cout << "[ERROR]"<< __LINE__ <<\
"(" << sqlite3_errcode(pdb) << "): " <<\
sqlite3_errmsg(pdb) << std::endl;}
bool init_tables(sqlite3 *pdb)
{
const char * user_query =
"CREATE TABLE 'dict' (\n\
'id' INTEGER NOT NULL PRIMARY KEY,\n\
'word' VARCHAR(128) NOT NULL,\n\
'transl' VARCHAR(128) NOT NULL,\n\
'word2' VARCHAR(128) NOT NULL);";
if(sqlite3_exec(pdb, user_query, NULL, NULL, NULL) == SQLITE_ERROR)
{
print_error(pdb);
return false;
}
return true;
}
char * addLin (char*, char*);
int SizeLine (char*);
int main(int argc, char** argv)
{
sqlite3 *pdb = NULL;
unlink(argv[1]);
char * lin ="./";
char * LaddL= addLin(lin, argv[1]);
if(sqlite3_open(LaddL, &pdb) != SQLITE_OK)
{
std::cout << sqlite3_errmsg(pdb) << std::endl;
return 1;
}
if(init_tables(pdb) == false)
{
std::cout << sqlite3_errmsg(pdb) << std::endl;
return 1;
}
sqlite3_close(pdb);
delete [] LaddL;
return 0;
}
int SizeLine (char* lin)
{
int siz=0;
while(lin[siz] !='\0')
{
siz++;
}
return siz;
}
char * addLin (char* lin1, char* lin2)
{
int siz1, siz2;
siz1= SizeLine(lin1);
siz2= SizeLine(lin2);
char * temp = new char [siz1+siz2+1];
std::memcpy(temp, lin1, siz1);
std::memcpy(temp+siz1, lin2, siz2);
temp[siz1+siz2]= '\0';
return temp;
}