cs_XENA84
Messages postés2Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention23 février 2005
-
22 févr. 2005 à 21:22
cs_XENA84
Messages postés2Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention23 février 2005
-
23 févr. 2005 à 13:39
J'utilise access 2000.
Je dois créer un enregistrement dans une table oracle qui contient des champs de type décimale.
Ma connexion ADO focntionne, l'écriture fonctionne tant que je mets un
nombre entier et pas de nombre à , ou . donc avec des décimales là j'ai
un message d'erreur nombre non valide.
or c'est urgnet que je puisse y mettre des virgules, c'est le but de ce type de champs !!!
Avez vous une solutions ?
Ou si je dois basculer vers VB, as t'on ce même type de problème avec VB ?
gaa179
Messages postés361Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention12 novembre 20092 23 févr. 2005 à 09:33
Salut,
Vérifie toujours si les Regional Settings du serveur Oracle ne sont pas UK.
Dans ce cas tu devras utiliser un point et non une virgule comme séparateur.
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 23 févr. 2005 à 10:02
A l'ouverture de ta connexion oracle, j'exécute ceci
dim ls_Sep as String
'Récupère le séparateur décimal utilisé dans l'appli
ls_Sep = mid(1/2,2,1)
'Modifie le séparateur décimal d'Oracle pour la connexion en cours
gConnectOracle.Execute "ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '" & ls_Sep & " '"
Attention, si tu utilises des ordres du type Execute "INSERT INTO ...", "UPDATE ..." avec un séparateur décimal "," :
Pour insérer 1.2 dans la table TOTO, ca donnerait :
INSERT INTO TOTO (TATA)
VALUES (1,2)
=> Erreur, car Oracle considère qu'il y a 2 arguments dans le VALUES à cause de la virgule.
Il faut donc utiliser ceci :
INSERT INTO TOTO (TATA)
VALUES (TO_NUMBER('1,2'))
cs_XENA84
Messages postés2Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention23 février 2005 23 févr. 2005 à 13:39
Je viens de faire le test avec la commande alter session, et j'ai réussit à écrire sans message d'erreur.
J'attends que les procédures stockées de la base oracle intègre mes
écritures dans la table temporaire vers la table de travail avant de
crier victoire.