I have an error, and don't know what is cause, the error message which appeared undefined reference to int sqlite::bindParam<char const*>(char const*, char const*)
I have the following class
Class declaration: sqlite.h
class sqlite{
private:
sqlite3 *db_Connection;
sqlite3_stmt *sqlPrepare;
public:
sqlite();
int open(const char *db_fileName);
int close();
int query(const char *sql);
template <class T>
int bindParam(const char *parm_name, T parm_value);
~sqlite();
};
The method which is the cause of the problem: sqlite.cpp
template <class T>
int sqlite::bindParam(const char *parm_name, T parm_value){
const std::type_info ¶meter_name = typeid(parm_name);
if(parameter_name == typeid(const char*) || parameter_name == typeid(char*)){
return sqlite3_bind_text(sqlPrepare, sqlite3_bind_parameter_index(sqlPrepare, parm_name) ,parm_value, 0, 0);
}else if(parameter_name == typeid(int)) {
return sqlite3_bind_int(sqlPrepare, sqlite3_bind_parameter_index(sqlPrepare, parm_name), parm_value);
}else if(parameter_name == typeid(double)){
return sqlite3_bind_double(sqlPrepare, sqlite3_bind_parameter_index(sqlPrepare, parm_name), parm_value);
}
}
When usage:
int main(){
sqlite *sql = new sqlite();
if(sql->open("database.db") == SQLITE_OK){
cout << "Connected.";
sql->query("SELECT * FROM categories WHERE name=:name");
sql->bindParam<const char*>(":name", "Fruity");
}
delete sql;
return 0;
}
I want to know what's wrong in my class specifically bindParam()
method ?