begin process at 2010 02 09 20:26:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Bases de données

 > 

Différence de type dans une expression (avec champ TimeStamp)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Différence de type dans une expression (avec champ TimeStamp)

mercredi 17 juillet 2002 à 11:12:32 | Différence de type dans une expression (avec champ TimeStamp)

MMarc

Bonjour,

je voudrais écrire une requête simple sur une table PARADOX du style
"Select * from TableName where FieldName = :p1"
avec p1 correspondant à une Date du type TimeStamp.
Je n'arrive pas à passer la date en paramètre.
J'ai le message "Différence de type dans une expression"

Bien à vous

Merci
mercredi 17 juillet 2002 à 14:16:45 | Re : Différence de type dans une expression (avec champ TimeStamp)

tgomas

les champs de type Date peuvent être paramétrés par des objets de type DateTime, il faut donc convertir la date avant de la passer en paramètre.
la fonction TimeStampToDateTime() permet cette conversion.

par contre il y aura une perte de précision.



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je voudrais écrire une requête simple sur une table PARADOX du style
"Select * from TableName where FieldName = :p1"
avec p1 correspondant à une Date du type TimeStamp.
Je n'arrive pas à passer la date en paramètre.
J'ai le message "Différence de type dans une expression"

Bien à vous

Merci
mercredi 17 juillet 2002 à 14:44:55 | Re : Différence de type dans une expression (avec champ TimeStamp)

MMarc

Merci pour la réponse mais je crois que ma question n'était pas assez précise

D'abord il faut savoir que le programme qui utilise cette requête attaque une base de données soit INFORMIX soit PARADOX.
La définition du champ en INFORMIX est un DateTime et en PARADOX un TimeStamp.
Quand ma db est INFORMIX, je connais ma valeur de Date en DateTime et je passe la valeur de la date en paramètre
via ...ParamByName('p1').AsDateTime := [DateTimeValue]
Mais quand je dois passer la valeur de la Date pour PARADOX, je sais convertir ma DateTime en TimeStamp via
la fonction DateTimeToTimeStamp() mais après comment passer la valeur de TimeStamp dans le paramètre :p1




-------------------------------
Réponse au message :
-------------------------------

les champs de type Date peuvent être paramétrés par des objets de type DateTime, il faut donc convertir la date avant de la passer en paramètre.
la fonction TimeStampToDateTime() permet cette conversion.

par contre il y aura une perte de précision.



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je voudrais écrire une requête simple sur une table PARADOX du style
"Select * from TableName where FieldName = :p1"
avec p1 correspondant à une Date du type TimeStamp.
Je n'arrive pas à passer la date en paramètre.
J'ai le message "Différence de type dans une expression"

Bien à vous

Merci

mercredi 17 juillet 2002 à 15:21:18 | Re : Différence de type dans une expression (avec champ TimeStamp)

tgomas

ma réponse reste la même ;)

je m'explique:
j'ai une appli avec une BD Paradox contenant une table avec un champ de type Timestamp, mais quand je veux ajouter un enregistrement avec une valeur pour ce champ j'utilise un objet de type DateTime.
effectivement je fais un insertrecord et non pas un parambyname, mais je pense que ça doit aussi marcher.
peux tu essayer et me tenir au courant?
merci
lundi 22 juillet 2002 à 16:31:18 | Re : Différence de type dans une expression (avec champ TimeStamp)

MMarc

je pensais t'avoir répondu assez vite et je me rend compte que ma réponse n'est peut-être pas passée.
Je renvoie donc ma réponse quitte à me répéter

Les UPDATE et INSERT passent sans problèmes mais c'est lorsque le champ TimeStamp se trouve dans un WHERE
EXemple:
RequeteTrav.Close;
RequeteTrav.SQL.Clear;
RequeteTrav.Active:=False;
RequeteTrav.SQL.Add('INSERT INTO Table1 SELECT * FROM Table2 WHERE date = :p1');
si INFORMIX
RequeteTrav.ParamByName('p1').AsDateTime := DateValue; (avec DateValue : TDateTime;
si PARADOX
RequeteTrav.ParamByName('p1').??? := DateValue; (avec DateValue : TTimeStamp);
RequeteTrav.ExecSQL;

Je cherche donc à savoir que mettre à la place des ??? ou si il y a une autre méthode

Merci




-------------------------------
Réponse au message :
-------------------------------

ma réponse reste la même ;)

je m'explique:
j'ai une appli avec une BD Paradox contenant une table avec un champ de type Timestamp, mais quand je veux ajouter un enregistrement avec une valeur pour ce champ j'utilise un objet de type DateTime.
effectivement je fais un insertrecord et non pas un parambyname, mais je pense que ça doit aussi marcher.
peux tu essayer et me tenir au courant?
merci

lundi 22 juillet 2002 à 18:16:42 | Re : Différence de type dans une expression (avec champ TimeStamp)

tgomas

Effectivement c'est plus compliqué que ce que je pensais.
Si tu ne trouves pas de solution simple il te reste toujours la possibilité de récupérer les données sous Delphi, de faire le tri avec Delphi et de rajouter les enregistrements un par un dans la table. C'est un peu lourd, mais ça peut marcher.

bonne chance.
jeudi 25 juillet 2002 à 16:17:38 | Re : Différence de type dans une expression (avec champ TimeStamp)

tgomas

sinon il existe aussi le type TSQLTimeStamp
à essayer ;)



-------------------------------
Réponse au message :
-------------------------------

Effectivement c'est plus compliqué que ce que je pensais.
Si tu ne trouves pas de solution simple il te reste toujours la possibilité de récupérer les données sous Delphi, de faire le tri avec Delphi et de rajouter les enregistrements un par un dans la table. C'est un peu lourd, mais ça peut marcher.

bonne chance.



Cette discussion est classée dans : type, timestamp, champ, différence, expression


Répondre à ce message

Sujets en rapport avec ce message

différence de type dans une expression [ par manudel ] J'ai un problème lors de l'exécution d'une requête.A mon avis cela vient du fait que ma variable sdateFin dans ma requête est de type String et que le requête SQL dynamique et champ de type Integer [ par manudel ] je veux construire une requête SQL dynamique, en faisant :monOracleDataSet.SQL.Add('monChamp IN ('1','2','3','5)');J'aimerais savoir si on doit obliga obtenir un type a partir d'un string [ par kalagool ] Bonjour à toutes et à tous, Je dois faire un module d'importation de fichier ASCII ( ou csv). Je dois verifier chacun de mes champs importé. Pour cel delphi et bases de données [ par effio ] salut la galerie... J'ai un pépin concernant le type des données a saisir dans un champ. Les données sont de types numériques (en Access), par defaut probleme de conversion type de champ SQL?? [ par dahman ] g un champ de type integer ds une base SQL l orsque je veux faire la somme d un champ exem :for i:=0 to adoquery3.RecordCount do       begin      &nbs Verification expression logique [ par mike600river31 ] Bonjour à tous,Dans mon programme, j'ai un champs dans lequel l'utilisateur doit entrer une expression logique du type : "operande"  + "operateur" + " Problème avec champ de type Time dans MySQL [ par mattinette ] Bonjour,Je réalise un programme de test qui stock des temps de fonctionnement de produit dans un champs de type time dans une table MySQL.Tant que le PB DELPHI+SQL SERVEUR URGENT [ par killianst ] Voila j ai un probleme entre SQl serveur et delphi, dans ma table sql server mes champ sont de type nvarchar or l'or de l'affectation dans un outil de Utilisation de TimeStamp [ par guilhemrostain ] Bonjour,j'ai un champ de ma base de donnée nommé Timestamp qui est de type Entier long sur 10 chiffres (ex : 1052990591).J'ai besoin d'extraire ce cha 1)paradox et le type float. 2),3)dbgrid [ par kam81 ] bonjour,1)quand je crée une table paradox, et je veux declarer un champ comme étant float,je ne retrouve pas le type dans la liste des choix,aidez moi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales