bonjour tout le monde, voil� ce qui me pose pas mal de probl�me depuis un bout de temps.
je travaille sous visualc++ (API win32), et je dois cr�er une base de donn�es, dans laquelle certaines tables ont plus de 100 champs (je sais je pourrais faire des relations entre diff�rentes tables mais mon tuteur ne veut qu'une seule table o� tout apparait, au cas o� il irait voir dans access). En fait, au lancement de mon appli, je r�cup�re le contenu de plusieurs EditBox pour l'ins�rer dans plusieurs cellules de ma table, �a je sais faire ou du moins jusqu'� un certain nombre de param�tres.
voici l'exemple:
Comme vous pouvez le voir j'ai d�j� un grand nombre de param�tres mais jusque l� ca marche, par contre si j'en rajoute un (et j'en ai encore au moins 60), message d'erreur pendant l'ex�cution "erreur de syntaxe dans INSERT INTO" (et pourtant mon appli se lance qd m�me)!!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 CHAR szParam1[TAILLE_BUFFER], szParam2[TAILLE_BUFFER], . lstrcpy(szParam1, szBuffer); GetWindowText(GetDlgItem(hwndDlg, IDC_EDITLIGNE2), szParam2, TAILLE_BUFFER); Etc . if(strcmp(szParam1, "SPB_150_2_AL")==0) { //SPB_150_2_AL est le nom de ma table wsprintf(szBuffer, "INSERT INTO SPB_150_2_AL (Reference_programme, Numero_OF,Numero_tache, Surface_usinee, Reference_individuelle_piece, Cycle_de_taillage, SENS_MOLETTE, VITESSE_MOLETTE, VITESSE_TAILLAGE_FORMATION, VITESSE_TAILLAGE_EBAUCHE, VITESSE_TAILLAGE_FINITION, VITESSE_MEULE_FORMATION, VITESSE_MEULE_DIAMANTAGE, PRISE_PASSE_FORMATION_X, PRISE_PASSE_EBAUCHE_X, PRISE_PASSE_FINITION_X, PRISE_PASSE_FORMATION_Z, PRISE_PASSE_EBAUCHE_Z, PRISE_PASSE_FINITION_Z, PROFONDEUR_FORMATION, NB_PASSE_DIAMANTAGE) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",szParam1, szParam2, szParam3, szParam4, szParam5, szParam6, szParam7, szParam8, szParam9, szParam10, szParam11, szParam12, szParam13, szParam14, szParam15, szParam16, szParam17, szParam18, szParam19, szParam20, szParam21); }
je suis bien emmerd� avec �a.
Alors j'avais pens� refaire un "wsprintf(szBuffer, "INSERT INTO dans la m�me table mais cette fois ci dans les colonnes suivantes:
Mais le probl�me maintenant c'est que les param�tres de ma deuxi�me requ�te sont enregistr�s dans ma table mais � la ligne suivante (emb�tant lorsque je veux l'afficher dans une liste), alors que je voudrais que tout soit sur la m�me ligne d'enregistrement.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 if(strcmp(szParam1, "SPB_150_2_AL")==0) { //SPB_150_2_AL est le nom de ma table wsprintf(szBuffer, "INSERT INTO SPB_150_2_AL (Reference_programme,Numero_OF,.............) VALUES ('%s','%s',..........)",szParam1,szParam2,..........); } try { if(pRs->State != adStateClosed) pRs->Close(); pRs->Open(szBuffer, _variant_t((IDispatch *) pConn, true), adOpenDynamic, adLockReadOnly, adCmdText); } catch(_com_error &e) { MessageBox(hwndDlg, e.Description(), "Erreur ExecuteRequete.", MB_ICONEXCLAMATION); } if(strcmp(szParam1, "SPB_150_2_AL")==0) { //SPB_150_2_AL est le nom de ma table wsprintf(szBuffer, "INSERT INTO SPB_150_2_AL (Cycle_d_usinage,SURFACE,POSITION,.............) VALUES ('%s','%s','%s'..........)",szParam22,szParam23,szParam24,..........); } try { if(pRs->State != adStateClosed) pRs->Close(); pRs->Open(szBuffer, _variant_t((IDispatch *) pConn, true), adOpenDynamic, adLockReadOnly, adCmdText); } catch(_com_error &e) { MessageBox(hwndDlg, e.Description(), "Erreur ExecuteRequete.", MB_ICONEXCLAMATION); }
Comment je peux faire?
Si quelqu'un a d�j� rencontr� ce probl�me, ca me serait vraiment tr�s utile,
merci bcp romy
[Pense a mettre la balise de code ,Merci Farscape]
Partager