ECRIRE DANS ORACLE VIA ADODB

cs_XENA84 Messages postés 2 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 23 février 2005 - 22 févr. 2005 à 21:22
cs_XENA84 Messages postés 2 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 23 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 ?



Merci !!!

3 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
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.

A+
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
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'))
0
cs_XENA84 Messages postés 2 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 23 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.

Mais merci beaucoup en tout cas..
0
Rejoignez-nous