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

 


Dernière réponse
Sujet : [Delphi] Probleme avec les DELETE en sql ... :(
[SDF]Poire

Tetedeiench a écrit a écrit :

non ben cai bon j'ai réussi :)  




 :D  
G même pas vu la question ;)


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
[SDF]Poire

Tetedeiench a écrit a écrit :

non ben cai bon j'ai réussi :)  




 :D  
G même pas vu la question ;)

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 :
 

Code :
  1. RequeteSuppr.SQL.Clear;
  2. RequeteSuppr.SQL.Add('Delete from Inscriptions where (N°Client = :N°Client) and (N°plongee = :N°plongee)');
  3. RequeteSuppr.Params[0].AsString := clientplongee.Fields[0].AsString;
  4. RequeteSuppr.Params[1].AsInteger := selecplongee.KeyValue;
  5. RequeteSuppr.ExecSQL;


 
Ca merde sur la ligne avec params[0] , qu'on mette un string ou un integer...

[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 a écrit a écrit :

 
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  
 
 




Si si y a mode debug, heureusement :D  
Tu fous 1 point d'arret sur RequeteSuppr.SQL.Clear; et pas à pas ;)  
Et tu donnes ligne où ça merde

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

Tetedeiench a écrit a écrit :

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... )  




Erreur mémoire....
TQuery est créée ?
(RequeteSuppr := TQuery.Create(self);  // ou un truc du genre)
Mode debug en pas à pas sur quelle ligne ça plante ?

antp

Tetedeiench a écrit a écrit :

Read adress 00000000.  




 
un pointeur vide
 
genre objet.propriété si objet = nil

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 :

Code :
  1. RequeteSuppr.Active := FALSE ;
  2.         RequeteSuppr.SQL.Clear;
  3.         RequeteSuppr.SQL.Add('Delete from Inscriptions where (( inscriptions.N°Client = :numinscr ) and (inscriptions.N°plongee = :numplong ))' );
  4.         RequeteSuppr.Params[0].AsInteger := clientpresent.Fields[0].Value;
  5.         RequeteSuppr.Params[1].AsInteger := selecplongee.KeyValue;
  6.         RequeteSuppr.Active := TRUE;


 
RequeteSuppr est du type 'Tquery' et on a vérifié 15 fois le type des paramètres : ils sont bons... C bien des integer.
 
Selecplongée est un TDBLookupComboBox et SelecClient une DBGrid.
 
Vous avez une idée ?
 
Merci d'avance ! :)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)