[wd11] ajouter une date avec une requete insert

Le
Serge
Bonjour,

Avec une requete insertion réalisée avec l'editeur de requete windev 11, je
n'arrive pas à mettre à jour un champs date d'une base de données SQL
serveur 2000, j'ai l'erreur suivante :

Erreur de syntaxte lors de la conversion d une chaine de caractere en type
de données smalldatetime.

extrait de mon code
DateJour est une date = DateSys() --> Me renvoie 20101109

..
REQ_MAJ.ParamDate = DateJour
..

Si Pas HexecuteRequete(REQ_MAJ) alors
Erreur( ..)
Fin

Le champs dans ma base de données SQL à mettre à jour est du type
smallDateTime, j'arrive à mettre à jour d'aute type de champs pas ce type
!!!


Merci de votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tjfromparis
Le #22775271
1ere solution : (si tu as une analyse )

// recherche de l'enregistrement...

madate est une date
table.champDate = madate
Hmodifie (table)

2eme solution :

construit ta requête dynamiquement du style

_sql est une chaîne
_sql = " INSERT INTO TABLE "
_sql += "( ch1, ch2 )
_sql += " values "
_sql += " (valeur1, CAST('"+maVariableDate + "' as datetime) "

SI SQLExec(_sql, "SQLinsert") = Vrai ALORS
info("youpi")
SINON
erreur(SQL.MesErreur)
FIN


3eme solution :
essaie de claquer le CAST directement dans ta requete (WDR). Je sais
pas si il va le prendre.


Je prefere la 2


On 9 nov, 15:49, "Serge"
Bonjour,

Avec une requete insertion r alis e avec l'editeur de requete windev 11, je
n'arrive pas mettre jour un champs date d'une base de donn es SQL
serveur 2000, j'ai l'erreur suivante :

Erreur de syntaxte lors de la conversion d une chaine de caractere en typ e
de donn es smalldatetime.

extrait de mon code
DateJour est une date = DateSys() --> Me renvoie 20101109




.....
REQ_MAJ.ParamDate = DateJour
.....

Si Pas HexecuteRequete(REQ_MAJ) alors
    Erreur( .....)
Fin

Le champs dans ma base de donn es SQL mettre jour est du type
smallDateTime, j'arrive mettre jour d'aute type de champs pas ce type
!!!

Merci de votre aide
Gilles
Le #22775821
Serge a utilisé son clavier pour écrire :
Bonjour,

Avec une requete insertion réalisée avec l'editeur de requete windev 11, je
n'arrive pas à mettre à jour un champs date d'une base de données SQL serveur
2000, j'ai l'erreur suivante :




Avec l'accès natif ou un ODBC?
tjfromparis
Le #22777371
je n'utilise jamais les acces natif PCS
j'evite l'odbc.


me suis fais une classe qui peut se connecter à peu pres partout
(oledb, HFCS, odbc)
apres c'est dans le fichier de conf de l'appli que ca se passe

dans le cas d'une connection sqlserver ca donne
:m_IDConnexion =
SQLConnecte(:m_DBHote,:m_DBLogin ,:m_DBpwd ,:m_DBDatabaseName , :m_TypeBase CnxString,:m_DBProvider)

ou :
:m_TypeBaseCnxString = "OLEDB"
:m_DBProvider = hOledbSQLServer


par contre, les procédures stockées windev c'est pas son truc.
faut utiliser les acces alternatif pour ca.


On 9 nov, 19:52, Gilles
Serge a utilis son clavier pour crire :

> Bonjour,

> Avec une requete insertion r alis e avec l'editeur de requete windev 11 , je
> n'arrive pas mettre jour un champs date d'une base de donn es SQL serve ur
> 2000, j'ai l'erreur suivante :

Avec l'acc s natif ou un ODBC?
Serge
Le #22778151
non j'uitlise l'odbc
@+


"Gilles" news: 4cd9988b$0$21241$
Serge a utilisé son clavier pour écrire :
Bonjour,

Avec une requete insertion réalisée avec l'editeur de requete windev 11,
je n'arrive pas à mettre à jour un champs date d'une base de données SQL
serveur 2000, j'ai l'erreur suivante :




Avec l'accès natif ou un ODBC?


Gilles
Le #22778671
Serge a présenté l'énoncé suivant :
non j'uitlise l'odbc
@+



c'est donc l'ODBC qui ne fait pas son travail de casting à toi de le
faire à sa place. (Ce qui parait logique, tu passes une chaine à un
champ date)...

Avec un accès natif, le problème ne se poserait pas, les casts sont
automatiques.
Gilles
Le #22778661
a couché sur son écran :
je n'utilise jamais les acces natif PCS
j'evite l'odbc.
me suis fais une classe qui peut se connecter à peu pres partout
(oledb, HFCS, odbc)
apres c'est dans le fichier de conf de l'appli que ca se passe



Perso, j'évite de coder à l'ancienne. L'outil nous permet d'avoir une
belle couche pour la gestion des données et d'éviter d'étaler des kilos
de lignes SQL superflues et qui rendent le code lourd...

Je n'utilise le SQL manuel qu'en cas de requête complexe, mais pour
ajouter un enregistrement dans une table, rien ne vaut un hAjoute.

Moins il y a de code... moins il y a de bugs.
tjfromparis
Le #22779111
effectivement. insert/ delete / update ca marche tres bien avec
l'editeur.
Pour des requêtes utilisant des ordres un peu plus évolués, les WDR
sont léger.
Les procédures stockées j'en parle même pas.
(et en plus sur du HFCS c'est le pompon !)

d'ailleurs au niveau perf / volume HFCS, quelqu'un a des stats d'une
base de prod (pas une base de test avec 1 milliard
d'enregistrements :)

On 10 nov, 20:10, Gilles
a couch sur son cran :

> je n'utilise jamais les acces natif PCS
> j'evite l'odbc.
> me suis fais une classe qui peut se connecter peu pres partout
> (oledb, HFCS, odbc)
> apres c'est dans le fichier de conf de l'appli que ca se passe

Perso, j' vite de coder l'ancienne. L'outil nous permet d'avoir une
belle couche pour la gestion des donn es et d' viter d' taler des kilos
de lignes SQL superflues et qui rendent le code lourd...

Je n'utilise le SQL manuel qu'en cas de requ te complexe, mais pour
ajouter un enregistrement dans une table, rien ne vaut un hAjoute.

Moins il y a de code... moins il y a de bugs.
Xavier Diab
Le #22855871
Prenez l'habitude de fonctionner en format de date ODBC 'AAAA-MM-JJ'
Et si là ça ne fonctionne pas, ajouter un TO_DATE ou DATEFORMAT selon
l'sgdb utilisé
Publicité
Poster une réponse
Anonyme