|
Dernière réponse | ||
---|---|---|
Sujet : [Delphi] Probleme avec les DELETE en sql ... :( | ||
[SDF]Poire |
|
Aperçu |
---|
Vue Rapide de la discussion |
---|
[SDF]Poire |
|
Tetedeiench | non ben cai bon j'ai réussi :) |
Tetedeiench | :lol:
Sinon, une erreur "Error creating cursor handle" , ca peut venir de koi ? (apres une requete ;) ) |
[SDF]Poire | Eh si t'avais pas écris n'importe où dans la mem hein ;) |
Tetedeiench | ON A TROUVAI !
La solution, c'était rebooter le PC. Pas mal delphi ! :sol: |
Tetedeiench | pis C pas ca d'ailleurs...
Vu qu'on y allait cash au début via clientplongee... |
Tetedeiench | tu fais ca comment ? |
[SDF]Poire | dit tu fais un test pour savoir si Source C bien un TDBGrid ? |
[SDF]Poire | Edit1.Text := TDBGrid(Source).Fields[TDBGrid(Source).SelectedIndex].AsString; |
Tetedeiench | Edit1.Text := IntToStr(TDBGrid(Source).Fields[TDBGrid(Source).SelectedIndex].AsInteger);
Meme CA ca passe pas, comme si il arrivait pas a sélectionner dans la Dbgrid ! Pourant celle d'a coté (qui marche) et celle la n'ont AUCUNE différence (on viens de comparer leurs propriétés... :( ) |
Tetedeiench | on y arrive paaaaaaaaas :( |
Tetedeiench | peux pas vu le merdier que c'est :(
On va finir par trouver ! (je me demande si ce n'est pas aprce que on essaie d'effacer le champ via des champs non clés ... ) Je vais essayer de récup le merdier via autre chose... en ajoutant le champ dans la requezte par exemple... |
[SDF]Poire | Faut aller à la SPA ;) Doit y avoir une couille dans les options de la DBGrid ou de la table..... Envois un chtit projet avec les bases (petite les bases) en racine |
Tetedeiench | C pas le nom (on vient de tenter en le zappant). |
Tetedeiench | Pourquoi ca amrche avec l'autre DBgrid alors ??????????????????????????????
Perdu le iench, perdu |
Tetedeiench | non plus.
On a essayé de récupérer clientpresent.Fields[0] de toutes les manières qu'on connaissais, a chaque fois ca fais l'erreur delamaur... Avant la requete, apres la requete, ca merde :??: |
[SDF]Poire | RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].AsInteger; |
[SDF]Poire | lllllllllllol tu m'as pas filé la bonne ligne.... (C 1 peu ma faute.... aprés le message d'erreur en debug on est sur la ligne d'apres le message.....)
Ok je regarde |
Tetedeiench | tiens, IntToStr(6) marche pas. |
Tetedeiench | tu va rire, mais quand je remplace :
RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value; par RequeteSuppr.Params[0].AsInteger := 6; Ou le client 6 est celui qu'on veux jarter, ben... CA PASSE BOURDAIL ! |
[SDF]Poire | Enfin G surement pas exactement la même chose que toi....
Là si tu m'envois pas un chtit projet de test G bien peur de ne pas pouvoir t'aider +... |
Tetedeiench | Ben alors la, j'en perds mon latin :??: |
[SDF]Poire | Tu vas rire mais RequeteSuppr.Active := False; RequeteSuppr.SQL.Clear; RequeteSuppr.SQL.Add('Delete from Inscriptions where (N°Client = :N°Client) and (N°plongee = :N°plongee)'); RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value; RequeteSuppr.Params[1].AsInteger := selecplongee.KeyValue; RequeteSuppr.ExecSQL; Chez moi ça marche.... |
Tetedeiench | kif kif :/
rien changé ... je me demande si C pas une merde de query qui ne peux écrire dans une table ou autre... ma table est pourtant ouverte en écriture (readonly = false ) [edtdd]--Message édité par Tetedeiench--[/edtdd] |
[SDF]Poire | ok donc selecplongee.KeyValue est un variant
Essaye : RequeteSuppr.Active := False; RequeteSuppr.SQL.Clear; RequeteSuppr.SQL.Add('Delete from Inscriptions where (N°Client = :N°Client) and (N°plongee = :N°plongee)'); RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value; RequeteSuppr.Params[1] := selecplongee.KeyValue; RequeteSuppr.ExecSQL; [edtdd]--Message édité par [SDF]Poire--[/edtdd] |
Tetedeiench | C un DBlookupComboBox |
[SDF]Poire | ok
selecplongee C quoi ? RequeteSuppr.Active := False; RequeteSuppr.SQL.Clear; RequeteSuppr.SQL.Add('Delete from Inscriptions where (N°Client = :N°Client) and (N°plongee = :N°plongee)'); RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value; RequeteSuppr.Params[1].AsInteger := selecplongee.KeyValue; RequeteSuppr.ExecSQL; |
Tetedeiench | La ligne qui merde c'est celle la :
RequeteSuppr.Params[0].AsInteger := clientplongee.Fields[0].AsInteger; Pourtant, si je fais : Edit1.Text := IntToStr(clientplongee.Fields[0].AsInteger); Ca passe, on renvoie bien le numéro du client (on s'était planté de table en faisant du debug en fait ) Donc en gros :
|
[SDF]Poire | G un doute là....
RequeteSuppr.SQL.Clear; RequeteSuppr.SQL.Add('Delete from Inscriptions where (N°Client = :N°Client) and (N°plongee = :N°plongee)'); RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value; RequeteSuppr.Params[1].AsInteger := selecplongee.KeyValue; RequeteSuppr.ExecSQL; Essaye ça.... Tu test texto j'espere ;) |
[SDF]Poire |
|
Tetedeiench | RequeteSuppr est créé ... Je vois le composant Tquery sur ma form nommé requetesuppr... la form ou se déroule tout l'algo d'ailleurs (j'ai aps oublié de caster la bonne form en gros).
Et il ne nous propose pas le mode debug comme avant , ni le pas a pas (pas de case a cocher :( ) DOnc on ne peut pas te le dire... Et comme il sélectionne aucune ligne (C ca qui est chelou) ben... On sait juste que ca plante dans les instructions si dessus... On est cependant SUR des valeurs des paramètres (ca passe dans un Tedit : clientpresent.Fields[0].Value et selecplongee.KeyValue [edtdd]--Message édité par Tetedeiench--[/edtdd] |
[SDF]Poire |
|
antp |
|
Tetedeiench | ca marche pas non plus :(
et le message C : "Access violation at adress 004B9C57 in module 'project1.exe'. Read adress 00000000. process stopped..." On comprends pas :( Surtout que les paramètres sont bons (on les checke en temps réel via des Tedit... ) |
[SDF]Poire | Bon essaye déjà ça :
RequeteSuppr.SQL.Clear; RequeteSuppr.SQL.Add('Delete from Inscriptions where ((N°Client = :numinscr ) and (N°plongee = :numplong ))' ); RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value; RequeteSuppr.Params[1].AsInteger := selecplongee.KeyValue; RequeteSuppr.ExecSQL; Et si tu pouvais donner le message d'erreur en entier :D |
Erwan_ | c'est pas le caractère "°" qui chie dans la requete ?
Faudrait tester ta requete dans ton client sql, avant de bidouiller ton code. BOn c juste une idée comme ca ... conné pas trop delphi :) |
[SDF]Poire | Déjà tu nous fait pas chier
pour ton pb je regarde ce que je peux faire.... |
Tetedeiench | C'est encore moi !
Désolé de vous faire chier, mais on a un probleme un peu... Chiant sur les bras. On veut faire une requete SQL effacant une occurence d'une table... Rien de bien méchant. la table est ouverte en lecture/ecriture (readonly = FALSE ) Et pourtant, Delphi nous balance une erreur style " Acces violation blabla ..." Voila le code :
|