DBExpress SQL Server - Delphi/Pascal - Programmation
Marsh Posté le 02-07-2004 à 14:15:00
quand tu inseres des parametres dans une requête SQL, tu dois mettre ':' devant pour qu'ils soient reconnus comme tels
exemple : 'AND MPRI_DATEBDX BETWEEN ATEDEB AND ATEFIN'
si tu les met dans une query et que tu créé des paramètres dynamiquement, il faut les rajouter égalament dans la propriété params pour qu'ils existent comme paramètre
donc : après avoir fait ton :
sqlquerytravail.sql.add('AND MPRI_DATEBDX BETWEEN ATEDEB AND ATEFIN');
tu dois aussi faire :
sqlquerytravail.params.add(':DATEDEB');
sqlquerytravail.params.add(':DATEFIN');
(le code dua params.add n'est peut-être pas bon, mais c'est dans ce sens qu'il faut travailler)
et ensuite seulement tu peu faire :
sqlquerytravail.ParamByName('DATEDEB').asSQLTimeStamp := sqlquerytravail.DateTimeToSQLTimeStamp(trunc(FDateDeb));
sqlquerytravail.ParamByName('DATEFIN').asSQLTimeStamp := sqlquerytravail.DateTimeToSQLTimeStamp(trunc(FDateFin));
Marsh Posté le 02-07-2004 à 15:09:57
Merci pour ton aide auredauv,
Mes ':' y sont devant c'est juste que ':''D' ca fait un smiley. lol
Marsh Posté le 04-07-2004 à 12:24:24
Solution plus simple, je trouve (j'aime pas utiliser ces trucs de paramètres, c'est lent et ça apporte plein de problèmes) :
Code :
|
(ce que je fais perso c'est une fonction qui fait l'équivalent du QuotedStr+FormatDateTime pour ne pas devoir répéter ces deux fonctions et le format de la date à chaque coup)
Marsh Posté le 05-07-2004 à 12:08:39
Merci antp,
J'avais déjà essayé cette méthode, ca fonctionne très bien, mais je doi utilisé des parambyname.
Es ce que SQL Server avec dbexpress accepte les parambyname?
merci d'avance
Marsh Posté le 06-07-2004 à 09:47:00
je suis d'accord avec antp pour dire que les params c'est pas top,
sauf que :
quand tu fais un web server là t'es obligé d'utiliser les params et que quand tu fais un web service, tu peux contourner les paramètres et passer la chaîne SQL, mais c'est quand même galère
conclusion : autant se mettre au paramètre le + vite possible et ça vaut pour tous les langages
(en plus, avec des paramètres, tu peux rajouter un contrôle sur les types (integer, string, date, ...) directement dans ton application cliente)
Marsh Posté le 08-07-2004 à 14:52:46
Quelqu'un a t-il déjà eu ce problème?
Si oui, existe-t-il une solution?
Merci d'avance
Marsh Posté le 01-07-2004 à 16:53:07
Bonjour,
J'utilise dbexpress et sql server.
Quand je veux affecter une date à un paramètre de ma requête avec mon composant TSQLQuery, j'obtiens une erreur : 'MPRI_DATEBDX' nom de colonne incorrect.
Le problème est que ma requête fonctionne, mais c'est mon parambyname qui fonctionne pas.
Code:
sqlquerytravail.sql.add('AND MPRI_DATEBDX BETWEEN ATEDEB AND ATEFIN');
...
sqlquerytravail.ParamByName('DATEDEB').asSQLTimeStamp := sqlquerytravail.DateTimeToSQLTimeStamp(trunc(FDateDeb));
sqlquerytravail.ParamByName('DATEFIN').asSQLTimeStamp := sqlquerytravail.DateTimeToSQLTimeStamp(trunc(FDateFin));
Merci d'avance