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

 


Dernière réponse
Sujet : [Delphi/SQL] Inclure le contenu d'un Tedit dans une requete SQL ...
Tetedeiench ok :/
 
je comprends toujours pas pourquoi ca merde...
 
je vais essayer de virer TOUS les espaces que j'aie pu mettre, et basta :)

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
Tetedeiench ok :/
 
je comprends toujours pas pourquoi ca merde...
 
je vais essayer de virer TOUS les espaces que j'aie pu mettre, et basta :)
antp je sais pas, pour la lecture il me les renvoyait sans les #
c'est juste à l'écriture je crois que je devais les mettre... c'est très bizarre, mais c'était de toute façon temporaire, pcq Access devait être remplacé par Oracle :)
Tetedeiench oky, je viens de voir :)
 
Mais pour comparer un date récupérée via SQL et une date de type Date...
 
Avec tes #, tu faisais comment toi ?
 
Suffit que je fasse pareil mais sans les # :D

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]

antp pour les champs SQL avec espace je sais pas, c'est le genre de complication que j'évite :D
 
pour les tabsheet, bhen suffit de modifier le numéro d'index d'une page (pageindex je crois) et elle bouge par rapport aux autres
Tetedeiench Par contre, si tu sais comment changer l'ordre des pages dans un tabsheet, je suis preneur... je cherche et je trouve pas :(
 
Et comment on passe dans une requete SQL un champ avec un espace... Ca aussi ca reste mystérieux :(
 
En gros : ca ca amrche jamais, meme quand je rentre la date qui devrait :
 

Code :
  1. Requete1.SQL.Text := format ('Select * from bateaux where ''N° bateau'' not in (select ''N° Bateau'' from plongees where ( ''plongees.Date plongee'' = %s ) ) ',[ DateToStr(Dateplongee.Date)]);


 
T'as une idée ?
 
Elle passe mais ne renvoie aps le résultat désiré (en gros, les bateaux pris dans une plongee a la date saisie... )
 
PS : je sais qu'elle est zarbie présentée comme ca, mais je l'ai simplifiée pour que ce soit + évident de montrer mon blem, et a des fins de test)

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]

Tetedeiench arf, sans dièse, ca marche nickel :D
 
Va comprendre :D
Tetedeiench dateplongee C un champ date en effet ...
 
je comprends pas cette erreur... puisque le format renvoie bien une chaine, et que l'instruction est terminée... :/
antp et date plongée c un champ date je suppose ? y a peut etre un format special à utiliser... moi je faisais des requete SQL avec des update/insert, j'utilisais pas ce système de fields pour modifier la BD.
Tetedeiench D'ailleurs, quoique je foute apres, ca merde :??:
 
meme erreur ...
 
si C la dernière, ca passe :??:

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]

Tetedeiench Il me renvoie une erreur "invalid variant type conversion" sur la ligne d'apres :??:
 

Code :
  1. plongees.FieldValues['Date Plongee']:= format ('#%s#',[DateToStr(CreerPlongee.Dateplongee.Date)]);
  2.         plongees.FieldValues['Nature Plongee']:= Creerplongee.Naturepl.text;


 
je vire la ligne sur la date plongee, no problem... (naturepl est un bete Tedit).
 
la chaine renvoyée par le format ...
 
#11/01/2002#
 
Récupérée dans un Tedit sans prob.

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]

antp il met qui comme erreur plus précisément ?  
la chaine renvoyée par le format donne quoi ?
c'est peut-être un problème de formatage, genre mm/jj/aaaa au lieu de jj/mm/aaaa ou un brol du genre.
Tetedeiench plop ?
Tetedeiench Zai une dernière petite question la, à chaud, sur  le vif...
 

Code :
  1. plongees.FieldValues['Date Plongee']:= format ('#%s#',[DateToStr(CreerPlongee.Dateplongee.Date)]);


 
Pouquoi il em renvoie une erreur ici... t'as une idée ?
 
le but étant de balancer dans la table des plongées une date dans un champ de type date/time ...
 
Sachant que la requete au dessus passe nickel, la il hurle...

antp :)
bhen disons que comme je fais du Delphi au boulot depuis 4 mois, et pendant mon temps libre depuis plus d'un an, je connais évidemment pas mal de trucs... mais bon on en apprend tous les jours...
Tetedeiench

antp a écrit a écrit :

si ladate est un string tu dois rien mettre, datetostr c'est pour si la date provient d'un TDateTimePicker par exemple (composant de sélection de date), donc une variable de type TDate ou TDateTime  
 
 




 
Dis, T une bible, je connaissais pas le composant TdateTimePicker...
 
CA RULEZ :love: :love:
 
Pile poil ce qu'il me fallait :D
 
Avec ca, je pense etre paré :)
 
Hésite pas a me contacter si tu as un jour besoin d'aide antp :)

antp si ladate est un string tu dois rien mettre, datetostr c'est pour si la date provient d'un TDateTimePicker par exemple (composant de sélection de date), donc une variable de type TDate ou TDateTime

 

[edtdd]--Message édité par antp--[/edtdd]

Tetedeiench Merde, il aime pas ton coup de la date...
 
D'ailleurs, faut  pas  mettre de DateToStr non ?
 
Vu que le contenu d'un Tedit est un Str...
 
ce serai pas plutot StrToDate ?
Tetedeiench Putain, on dirai un printf :eek:
 
C génial ca :sol:  
 
Connaissais pas :sol:
 
Marchi :D
antp heu là ça va foirer :)
 
plutôt:
... where ladate = #' + Edit1.Text + '# ...
 
sinon si t'as bcp de variables c parfois plus clair (plus pratique) de tout mettre dans un format :
 
Sql.Text := format('select * from truc where machin = %d and truc = ''%s'' and ladate = #%s#', [unentier, unechaine, DateToStr(unedate)]);
Tetedeiench Okay, donc je suppose que ca doit etre de la gueule :
 
where ladate = ' + # + Edit1.Text + # + '  
 
nan ?

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]

antp pour Access 2000 pour les dates j'avais dû les mettre de la forme:
where ladate = #dd/mm/yyyy#
(ouais ces # c'est bizarre mais y a que comme ça que ca marchait)
Tetedeiench Merde, C que niveau date j'en ai 'achement besoin la...
 
C pile poil ce sur quoi je regardais la...
 
C une base Access XP ( 2002), enfin ca doit surement etre pareil que le 2001 ...
 
T'as une antp le maitre du delphi/SQL ?
antp pour les integer suffit de mettre  
...where machin = ' + edit1.text + ' ...
ca doit passer.
pour les dates c'est un bordel pas croyable, ça a l'air de dépendre de la base de donnés cible.
pour les booleans, je sais plus, 0 ou 1 j'imagine.
Tetedeiench Y a un truc que je ne capte pas...
 
Admettons que je veuilles insérer le cotnenu d'un Tedit, mais cette fois ci de type Integer...
 
Forcément, je ne peux plus faire ''' + gnagna + ''' , parce que ca va etre considéré du type string...
 
Quelle est la syntaxe alors ?
 
J'ai essayé ' + gnagna + ' , mais ca a pas l'air d'etre ca... a priori.
 
Et le type Date ... y a pas un blem avec ?
 
Et pour les booléens ?
 
Une fois que j'ai ca, promis, j'ai tout ce qu'il me faut, je vous laisse tranquille ;)

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]

antp en informatique, aussi fort qu'on soit, c'est toujours des autres que viennent les solutions aux problèmes les plus bêtes.
Quand c'est son propre code on ne voit pas certaines erreurs que d'autres voient au premier coup d'oeil.
irulan

Tetedeiench a écrit a écrit :

 
 
Le PIRE, C qu'il l'a dit cash, comme ca :D
 
On galérait la dessus depuis 4 heures... T'imagines pas comme C BON ! :love:  




 
Je pense que l'informatique, et plus particulièrement le dev est une des rares disciplines à procurer autant de frustration et de satisfaction (quand le problème est résolu ;) ) réunies.
En effet qui n'a pas ressenti l'intensité quasi orgasmique de la satisfaction lorsque après avoir galéré pendant des heures sur un problème, la solution apparait enfin ? (et c'est encore meilleur quand on la trouve soit-même :D )

 

[edtdd]--Message édité par irulan--[/edtdd]

Tetedeiench

antp a écrit a écrit :

bhen dis donc :ouch:  




 
Le PIRE, C qu'il l'a dit cash, comme ca :D
 
On galérait la dessus depuis 4 heures... T'imagines pas comme C BON ! :love:

antp bhen dis donc :ouch:
irulan 'tain, c'est devenu chaud le forum Programmation :D :lol:
Tetedeiench

antp a écrit a écrit :

Temp.SQL.Text := 'Select nom from bateaux where  ( bateaux.nom  = ''' + dateplongee.Text +''')';
 
le nom est un champ texte dans la BD, délimité par des '
comme les ' sont dans une chaine, il faut mettre '' pour que dans la chaine finale ca donne '
et y en a 3 pcq y a les fins de chaine / debut de chaine.
 
PS: il n'y a aucun " dans mon post (sauf celui-ci dans le PS :D), ce sont bien 2x '  
 
 




 
Ecoute poupoule, C pas qu'on t'aime, mais on t'adore !
 
T un DIEU :love:
 
Mon collègue viens d'ailleurs de dire qu'il accepterai de se faire sodomiser par toi...
 
C pour dire !
 
Merci, Merci, remercie, reremercie, on t'aime, on t'adore  :D
 
http://perso;wanadoo.fr/tetedeiench/sounds/orgasme.wav

antp Temp.SQL.Text := 'Select nom from bateaux where  ( bateaux.nom  = ''' + dateplongee.Text +''')';
 
le nom est un champ texte dans la BD, délimité par des '
comme les ' sont dans une chaine, il faut mettre '' pour que dans la chaine finale ca donne '
et y en a 3 pcq y a les fins de chaine / debut de chaine.
 
PS: il n'y a aucun " dans mon post (sauf celui-ci dans le PS :D), ce sont bien 2x '

 

[edtdd]--Message édité par antp--[/edtdd]

Tetedeiench Ouin, finalement on y arrive toujours pas...
 
Voila la requete qu'on fait :
 

Code :
  1. Temp.Active := FALSE ;
  2. Temp.SQL.Clear;
  3. Temp.SQL.Text := 'Select nom from bateaux where  ( bateaux.nom  = ' + dateplongee.Text +')';
  4. Temp.Active := TRUE ;


 
La requete s'apelle bien Temp , et le Tedit s'apelle dateplongee ...
 
C juste un nom a la cong qu'on a mis comme ca, on rentre pas une date dedans, on mets un Striing style le nom d'un bateau...
 
Et ca nous balance une erreur style "Manque un paramètre"...
 
Vous savez pourquoi ?
 
Qu'on enleve les aprenthèses ou non, C la meme chose, d'ailleurs...
 
Merci d'avance ! :)

Proov

Tetedeiench a écrit a écrit :

 
 
http://perso.wanadoo.fr/tetedeiench/sounds/orgasme.wav  




 
:lol:

Tetedeiench

JWhy a écrit a écrit :

tu ne pourras pas le faire directement via l'explorateur de propriétés... il va falloir que tu mettes un bout de code:

Code :
  1. qryLeNomDeTonComposantQuery.SQL.Text := 'Select nom  from bateaux where ''n° Bateau'' not in (select ''n° bateau'' from plongee where ''Date plongee'' =' + edit1.text + ')';


dans le code du bouton (ou autre) qui va executer ta query.  
 
 




 
http://perso.wanadoo.fr/tetedeiench/sounds/orgasme.wav

JWhy tu ne pourras pas le faire directement via l'explorateur de propriétés... il va falloir que tu mettes un bout de code:

Code :
  1. qryLeNomDeTonComposantQuery.SQL.Text := 'Select nom  from bateaux where ''n° Bateau'' not in (select ''n° bateau'' from plongee where ''Date plongee'' =' + edit1.text + ')';


dans le code du bouton (ou autre) qui va executer ta query.

 

[edtdd]--Message édité par JWhy--[/edtdd]

Tetedeiench non non ca no problem, C juste pour inclure ca dans une requete SQL ...
antp pour les dates c'est assez chiant, j'ai eu pas mal de problèmes... par exemple pour donner une date à Access je devais la mettre entre #, ça donnait un truc du genre:
where ladate = '#05/12/2001#'

 

[edtdd]--Message édité par antp--[/edtdd]

Tetedeiench Salamalekum !
 
En ce moment, je galère sur un petit probleme...
 
on doit faire une appli en delphi qui gère un club de plongée, avec une base de données...
 
j'ai modélisé la BDD sous Access, et je la balance via ODBC dans l'appli, ca amrche plutot bien.
 
mais le probleme le voici : Poiur créer une plongée, il faut un bateau.
 
L'utilisateur rentre donc la date de sa plongée, et il doit ensuite sélectionner dans une liste le bateau a utiliser...
 
Or je voudrais que cette liste ne contienne que les bateaux disponibles ... i.e. ceux pas pris ledit matin, ou apres midi (on considère que quand un bateau est pris, C pour toute la matinée ou l'aprem'.
 
Donc en gros, je voudrais faire une requete SQL qui regarde la date et le moment de la journée, et me sort les bateaux dispos...
 
Probleme : j'ai essayé, a titre de test, de récup le contenu d'un Tedit pour faire ma requete...
 
Ca donne ca (dans la propriété SQL de ma requete ... ) :

Code :
  1. Select nom  from bateaux where 'n° Bateau' not in
  2. (select 'n° bateau' from plongee where 'Date plongee' = edit1.text);


 
je remplace le edit1.text par une date quelconque, ca passe ...
 
la ca me lance une erreur...
 
C quoi la syntaxe exacte ?
 
merci d'avance :)


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