Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2924 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème d'insertion dans une table via une interface Visual C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'insertion dans une table via une interface Visual C++

n°1790325
colfarell
Posté le 22-09-2008 à 10:51:17  profilanswer
 

je suis entrain de faire une petite application sur visual C++ et j'ai un problème.
Je voudrais faire une insertion dans cette table :

 
Code :
  1. CREATE TABLE Beneficier (idbenef  INTEGER PRIMARY KEY IDENTITY(1,1),
  2.                         idadh VARCHAR (4),
  3.                         code_eq  VARCHAR(4),
  4.                         datebenef datetime NOT NULL,
  5.                         FOREIGN KEY (idadh) REFERENCES Adherents
  6.               ON DELETE CASCADE     
  7.               ON UPDATE CASCADE,    
  8.                         FOREIGN KEY (code_eq) REFERENCES Equipements
  9.             ON DELETE CASCADE     
  10.             ON UPDATE CASCADE);
 

Et voici mon code d'insertion

Code :
  1. void ChargerTableBeneficier(HWND hDlg)
  2. {
  3. //on va ramener de la base de donnees ces élélments
  4. char szcodequip[4+1];
  5. char szidadher[4+1];
  6. char szdate_benef[8+1];
  7. SQLINTEGER      cbInt=0, cbChar = SQL_NTS;
  8.        
  9.             /* Allocate statement handle */
  10. retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
  11.            
  12.             /* Process data SQL_SUCCESS  */
  13. retcode = SQLPrepare(hstmt,"INSERT INTO Beneficier (idadh,code_eq,datebenef) VALUES (?, ?, ?)", SQL_NTS);
  14. /* Specify data types and buffers for OrderID, CustID, OpenDate, SalesPerson, */
  15. /* Status parameter data. */
  16. SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR,
  17. SQL_CHAR, 4+1, 0, szidadher, 0, &cbChar);
  18. SQLBindParameter(hstmt, 3,  SQL_PARAM_INPUT, SQL_C_CHAR,
  19. SQL_CHAR, 4+1, 0, szcodequip, 0, &cbChar);
  20. SQLBindParameter(hstmt, 4, SQL_PARAM_INPUT, SQL_C_CHAR,
  21. SQL_CHAR, 8+1, 0, szdate_benef, 0, &cbChar);
  22. //Je récupère mes données de l'écran par exemple....
  23. //je renseigne mes valeur à inserer
  24.          GetDlgItemText(hDlg,IDC_IDADH,(LPTSTR)szidadher,4+1);
  25.         GetDlgItemText(hDlg,IDC_CODE_EQUIP,(LPTSTR)szcodequip,4+1);
  26.     GetDlgItemText(hDlg,IDC_DATE_BENEF,(LPTSTR)szdate_benef,8+1);
  27. /* Execute statement with second row. */
  28. retcode = SQLExecute(hstmt);
  29. }


 Et j'appelle cette fonction à ce niveau :

 
Code :
  1. LRESULT CALLBACK DLGCoopera(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
  2. {
  3.   switch (message)
  4. {
  5.  case WM_INITDIALOG:
  6.   Charger_code_equip(hDlg);
  7.   Charger_idAdh(hDlg);
  8.    return TRUE;
  9.  case WM_COMMAND:
  10.   if (LOWORD(wParam) == IDOK) 
  11.   {
  12.    ChargerTableAcheteur(hDlg);
  13.    ChargerTableEquip(hDlg);
  14.    ChargerTableBeneficier(hDlg);
  15.    EndDialog(hDlg, LOWORD(wParam));
  16.    return TRUE;
  17.   }
  18.   if(LOWORD(wParam) == IDCANCEL)
  19.   {
  20.    EndDialog(hDlg, LOWORD(wParam));
  21.    return TRUE;
  22.   }
  23.  /* if(LOWORD(wParam) == IDC_MODIFIER)
  24.   {
  25.    ExempleModification(hDlg);
  26.    //EndDialog(hDlg, LOWORD(wParam));
  27.    return TRUE;
  28.   }*/
  29.   break;
  30. }
  31.     return FALSE;
  32. }
 

Et qd j'éffectue mon insertion via mon interface graphique de Visual C++ , les données ne sont pas inserer au niveau de la table.
Alors je voudrais que vous me donniez un de coup de main merci.

 


Édité par Elmoricq : ajout des balises code pour plus de lisibilité


Message édité par Elmoricq le 22-09-2008 à 10:54:25
mood
Publicité
Posté le 22-09-2008 à 10:51:17  profilanswer
 

n°1790332
Elmoricq
Modérateur
Posté le 22-09-2008 à 10:55:56  profilanswer
 

Tu mets le code retour dans la variable "retcode", mais tu ne la testes pas. Es-tu sûr que la requête s'est correctement déroulée ?

n°1790357
colfarell
Posté le 22-09-2008 à 11:13:19  profilanswer
 

Oui je l'ai testé le code retour est 1 alors je suppose que c'est bon

n°1790363
colfarell
Posté le 22-09-2008 à 11:17:57  profilanswer
 

Mais la table n'est pas renseigner quand j'effectue une insertion

n°1790386
Elmoricq
Modérateur
Posté le 22-09-2008 à 11:36:37  profilanswer
 

colfarell a écrit :

Oui je l'ai testé le code retour est 1 alors je suppose que c'est bon


 
C'est "1" ou c'est "SQL_SUCCESS" le code retour ?
Je ne connais pas la valeur de SQL_SUCCESS, mais en règle générale quand tout se passe bien, la norme voudrait plutôt qu'une fonction retourne "0".
Compare plutôt ton code retour aux valeurs standards : http://msdn.microsoft.com/en-us/library/ms713584.aspx
(et pas seulement pour SQL_Execute, faut tester toutes les fonctions que tu appelles pour attraper d'éventuelles erreurs)

n°1790391
colfarell
Posté le 22-09-2008 à 11:47:15  profilanswer
 

Stp vérifie mon code pour voir s'il ya quelque chose qui ne va.Merci

n°1790394
Elmoricq
Modérateur
Posté le 22-09-2008 à 11:52:02  profilanswer
 

[:quardelitre]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème d'insertion dans une table via une interface Visual C++

 

Sujets relatifs
plusieurs count() sur une même table!Problème insoluble de transtypage
probleme de transmission de variable js/phpProbleme xpath(libxml2) : un seul parsing par xmlDoc ?
[php]Insérer une table dans une autre table en fonction d'une variableProbleme encodage de caractères étendus après copier/coller
problème création de forumProblème javascript / DOM
Requete SQL avec GROUP BY problemeProbléme méthode paintComponent()
Plus de sujets relatifs à : Problème d'insertion dans une table via une interface Visual C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR