J'ai construit une base de données dans MS Access. Là, j'ai une table appelée Customers qui a aussi une cellule appelée Employee type: integer. J'ai également construit un programme en C++ qui contrôle toutes les données.C++ sql passer un entier à la chaîne sql
Disons que j'ai une chaîne comme ceci:
string sqlString = "SELECT * FROM Customers Where Customers.Employee = '" + id + "' ";
Id passe par ma fonction correctement et est un entier, donc j'obtiens une erreur dans la compilation en disant: « plus de pointeur non valide ».
Si je déclare l'id comme une chaîne bien sûr, il n'y a pas d'erreur mais il n'y a pas de résultats dans mon formulaire aussi. Si je déclare dans l'employé de la cellule de base de données sous forme de texte et de construire ma requête comme ceci:
string sqlString = "SELECT * FROM Customers WHERE Customers.Employee = 128";
j'obtenir des résultats, mais je dois l'employé comme un entier cause de son une clé étrangère d'une autre table.
Alors, que dois-je faire avec ma requête pour avoir des résultats en passant un nombre entier en paramètre à travers l'ID de la variable, pour être ok avec la cellule Employé de la base de données qui est aussi entier? Des idées? J'apprécierais vraiment de l'aide ici. Comme je l'ai dit, si je convertis id en chaîne, il n'y a pas de résultats dans mon formulaire puisque Employee dans la base de données est un nombre entier. Donc ceci:
std::ostringstream buf;
buf << "SELECT * FROM Customers Where Customers.Employee = '" << id << "' ";
string str = buf.str();
ne fera pas le travail ou toute autre conversion.
Comment puis-je transmettre id en tant qu'entier dans ma requête?
Stirngstream est le meilleur moyen d'aller. La plupart des requêtes sont écrites avec sqlstream. –