begin process at 2012 05 30 04:50:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Base de données

 > 

SQL

 > 

syntaxe insert


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

syntaxe insert

mercredi 15 avril 2009 à 11:06:24 | syntaxe insert

weahgeorges

bonjour,
j'ai un souci, actu je suis entrain de rediger un programme qui doit lire d'un fichier et inserer dans la base de données.  J'utilise les API de mysql++. Actu tout va bien, creation et insertion dans la base, mais ceci ne fonctionne que si j'insère en dur

query << "INSERT INTO stock(CodeIntervention) VALUES('weahgeorges'); ";
si je fais par exemple 
string contenu= "weahgeorges";
query << "INSERT INTO stock(CodeIntervention) VALUES(contenu); ";
ça ne marche plus. Quelqu'un aurait il la bonne syntaxe?? Merci d'avance 

mercredi 15 avril 2009 à 11:49:15 | Re : syntaxe insert

BruNews

Administrateur CodeS-SourceS

A toi de formater ta requete.

char buf[200]; // ADAPTER TAILLE SI RISQUE OVERFLOW
char *c, *d;
d = buf;
c = "INSERT INTO stock(CodeIntervention) VALUES('";
while(*d = *c++) d++; // COPIE DEBUT DE REQUETE
c = contenu; // FAISONS QUE TU AS UN char[] contenu REMPLI
while(*d = *c++) d++; // COPIE DE contenu
*((DWORD*) d) = 0x3B2927; // AJOUT FIN DE REQUETE "');"

ciao...
BruNews, MVP VC++

mercredi 15 avril 2009 à 13:41:55 | Re : syntaxe insert

weahgeorges

  Salut BruNews,

tt d'abord merci pour ta reponse. Excuse moi si ma question est un peu banale mais je voudrais etre sur d'avoir bien compris ton code char *d continedra à la fin ma requete complete. Bon pour executer la requete je fais
query << d;
query.store()
J'ai fait cela , ça ne donne pas d'erreur mais ça n'insere non rien dans la table. Voici mon code

 

// Create sample data table within sample database.

try {

// Send the query to create the stock table and execute it.

cout <<

"Creating stock table..." << endl;

mysqlpp::Query query = con.query();

query <<

"CREATE TABLE stock (" <<

" CodeIntervention CHAR(30) NOT NULL) " <<

"ENGINE = InnoDB " <<

"CHARACTER SET utf8 COLLATE utf8_general_ci" ;

query.execute();

char contenu []= "weahgeorges" ; // déclaration d'une chaîne qui contiendra la ligne lue


char
buf[200]; // ADAPTER TAILLE SI RISQUE OVERFLOW

char *c, *d;

d = buf;

c =

"INSERT INTO stock(CodeIntervention) VALUES('" ;

while (*d = *c++) d++; // COPIE DEBUT DE REQUETE

c = contenu;

// FAISONS QUE TU AS UN char[] contenu REMPLI

while (*d = *c++) d++; // COPIE DE contenu

*((DWORD*) d) = 0x3B2927;

// AJOUT FIN DE REQUETE "');"

query << d;

query.store();

// execution des insertions

}

catch ( const mysqlpp::BadQuery& er) {

// Handle any query errors

cerr << endl <<

"Query error: " << er.what() << endl;

return 1;

}

catch ( const mysqlpp::BadConversion& er) {

// Handle bad conversions

cerr << endl <<

"Conversion error: " << er.what() << endl <<

"\tretrieved data size: " << er.retrieved <<

", actual size: " << er.actual_size << endl;

return 1;

}

catch ( const mysqlpp::Exception& er) {

// Catch-all for any other MySQL++ exceptions

cerr << endl <<

"Error: " << er.what() << endl;

return 1;

}

mercredi 15 avril 2009 à 14:56:59 | Re : syntaxe insert

BruNews

Administrateur CodeS-SourceS
char *d est un POINTEUR, il ne contiendra donc jamais RIEN !!!
Il ne sert que de pointeur d'écruiture pour concaténations en économisant les strcat().

C'est bien entendu buf[] qui contient la requete complète.

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : base, insert, syntaxe, actu


Répondre à ce message

Sujets en rapport avec ce message

Lecture d'une base de donnée DBase IV en VC++ [ par Pits ] Bonjour,Je cherche à lire une base de donnée DBase IV en Visual C++. Est ce que c'est possible ?Si OUI, comment ?Merci. Lecture et ecriture d'une base de données access [ par thino ] SalutJe voudrai avoir un code pour accéder à ma base de données sur access par la methode d'accès DAO. Acceder à une base de donnée [ par anspauldou ] SalutJe voudrai avoir les étapes pour accéder à une base de données ACCESS 97 par code Visual C++ avec exemple à l'appui.Merci d'avance ouverture de base Access [ par denis ] salut!voila mon probleme :j'ai cree une dll dans laquelle il y a une ouverture de base access au moyen d'une classe qui dérive de la classe CRecordset Liens entre 2 tables sous Base Oracle [ par Charly06 ] Bonjour ma question est la suivante : Comment créer un lien entre 2 tables, sachant que je suis sous Oracle. D'avance merci comment écrire dans la base registre ??? [ par wres ] salut,je voulais juste savoir comment faire pour créer une clé dans la base de registre de windows!merci d'avance !wres comment créer une chaîne dans une clé dans la base registre ? [ par wres ] salut,je voulais savoir comment créer une chaîne, une valeur binaire ou un DWORD dans une clé de la base de registre ?car j'arrive à créer une clé mai pb de base de donnee en C [ par tequ13 ] j'aimerais savoir comment faire pour charger des fichiers (*.txt) a l'ouverture d'un programme pour ensuite les comparer et repérer les doublons pour Qui à l'intention de créer un projet simple sur les base de données ? [ par Lallthis ] Le genre de projet où on ouvre un base, on écris dedans,et on recherche un élément. Acceder a une base de donnéééééééééééééééééééééééééééééées [ par Ansdou ] SalutAider moi je vous en prie. N y a t il pas un autre moyen d'acceder a une base de données ACCESS 97 sans passer par l'assistant ? Si cela est poss


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales