Newsgroup: it.comp.appl.access
Titolo: Access 97 e Oracle

Buongiorno a tutti.
Lavoro in una azienda che utilizza come
standard aziendale "Office97".
Mi hanno dato la possibilità di leggere le tabelle
del programma di produzione (Database Oracle) con il quale
gestiamo gli ordini, anagrafica prodotti, movimenti di
magazzino, etc...via Odbc, collegando
le stesse ad un database di Access 97.
Ho il problema di una lettura errata solo su alcuni campi (Valuta)
mentre leggo correttamente tutti i campi di testo e numerici.
Questo "errore" si verifica solo con la versione di Access97,
mentre se le stesse vengono collegate ad un database
formato 2000/2003 fila tutto liscio.
Quello che si verifica è:
- access 97 - (Lettura errata)
______________________
|Articolo |Prezzo
______________________
|Art1     |270.783
______________________
|Art2     |.573
______________________
-access 2000/2003 - (Lettura corretta)
______________________
|Articolo |Prezzo
______________________
|Art1     |270,783
______________________
|Art2     |0,573
______________________
Il problema più grosso, è che come dicevo, devo usare la
versione 97 in quanto standard.
Sapete come posso risolvere questo problema?
Grazie in anticipo
Tommaso

> Quello che si verifica è:
Uno legge punti, l'altro virgola... io andrei a vedere le opzioni
internazionali... 
-- 
--------------------------------
Pablitomf
Napoli sempre nel "Q"uore!

 standard aziendale "Office97".
alla faccia dell'avanguardia!
:-)
BFS

 Quello che si verifica è:
Uno legge punti, l'altro virgola... io andrei a vedere le opzioni
internazionali...
________Risposta:
No, Pabli, lo hai anche in SQL, devi usare tonumber che corrisponde al SQL 
Convert
MA 

 ha scritto:

Daccordo, ma il 2000 mica c'ha la conversione automatica...


 MA
Daccordo, ma il 2000 mica c'ha la conversione automatica...
__Risposta:
non ho esperienza, ma vuoi dire che in T-SQL per SQL 2000 non hai 
convert(money, tuocampo)?
MA 

 MA 
la sua domanda era "con 97 fa cosi', con 2000 cosa'..." per cui mi
chiedo, se
nel 2000 la conversione non e' automatica (o lo e'?), quale e' il
dilemma? forse le opzioni internazionali? 


 MA
la sua domanda era "con 97 fa cosi', con 2000 cosa'..." per cui mi
chiedo, se
nel 2000 la conversione non e' automatica (o lo e'?), quale e' il
dilemma? forse le opzioni internazionali?
_________risposta:
Ah A2000 ok, è un problema del driver ODBC, probabilmente
MA 

 ... (Database Oracle)

Le prove con A97 e A00/03 hai fatto sulla stessa macchina?
Chiedo perché di solito problemi con il separatore decimale sono
causati dal chiave per la lingua nel registro, cioè normalmente
HKLM\Software\Oracle\Home0\NLS_LANG:
Se si tratta della stessa macchina hai un problema diverso,
ma se sono macchine diverse fai un paragone del valore di
questo chiave.
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it

...
Le prove con A97 e A00/03 hai fatto sullo stesso computer
e la stessa installazione di Win/Oracle/ODBC?
Chiedo perché spesso la causa per problemi con il separatore
decimale è la chiave per la lingua nel registro:
HKLM\Software\Oracle\Home0\NLS_LANG
Se si tratta di macchine diverse fai un paragone dei valori di


 MA 
Massimi', anche se tutto puo' essere, stento a credere che Oracle faccia bug nei
suoi driver Odbc... io credo che ci sia qualche cosa nelle impostazioni del
sistema che il 97 interpreta diversamente dalle vers successive.


 Grazie in anticipo
Leggi questo:
http://www.orafaq.com/wiki/ODBC_FAQ
in cui c'e' questo:
Option Compare Database
Option Explicit
Function AttachTable() As Variant
  On Error GoTo AttachTable_Err
  Dim db As Database
  Dim tdef As TableDef
  Dim strConnect As String
  Set db = CurrentDb()
  strConnect = "ODBC;DSN=oraweb;DBQ=qit-uq-cbiw_oraweb;DATABASE="
  ' NOTE: DSN is your ODBC Data Source Name; DBQ is your TNSNAMES.ORA
entry name
  Set tdef = db.CreateTableDef("MY_ACCESS_TABLENAME")
  ' tdef.Attributes DB_ATTACHEDODBC
  tdef.Connect = strConnect
  tdef.SourceTableName = "MY_ORACLE_TABLENAME"
  db.TableDefs.Append tdef
 
AttachTable_Exit:
  Exit Function
 
AttachTable_Err:
  MsgBox "Error: " & Str(Err) & " - " & Error$ & " occured in global module."
  Resume AttachTable_Exit
End Function



Sono due macchine diverse, quasto il valore dalle chiave sulla mia con
access 97:
ITALIAN_ITALY.WE8ISO8859P1
la confronterò appena possibile, sulla macchina di un collega, che ha
A03.
Grazie

 Napoli sempre nel "Q"uore!
entry Name : Variabile non definita.
Ma non voglio ricreare le tabelle in locale, questo lo psso fare
utilizzando altre
funzioni, che ho a disposizione, praticamente eseguendo delle
estrazioni a sistema
in formato txt con degli strumenti messi a dispozione dal programma di
produzione che utilizzo,
e successivamente importandole in access, pratica che utilizzo, ma non
leggo
mai il dato in tempo reale, cosa possibile con il collegamento Odbc.

 A03.
La seconda parte della chiave decide su separatore, valuta ecc.
Però il funzionamento dipende anche delle versioni di
driver ODBC/Oracle/Access.
Ho letto spesso che il problema frequente che Access non mostra
nessun separatore decimale con il driver ODBC di Oracle (<>MS)
e una impostazione che sembra giusta (= identica col sistema)
sparisce con l'impostazione americana. Qui sarebbe:
ITALIAN_AMERICA.WE8ISO8859P1
Puoi provare se aiuta anche qui.
Certo sempre con un backup del registro ecc. - altrimenti non ho
detto niente. ;-)


 driver ODBC/Oracle/Access.
Ho provato con la chiave:
ITALIAN_AMERICA.WE8ISO8859P1
e anche con la chiave del registro, del Pc con A03:
AMERICAN_AMERICA.WE8ISO8859P1
ma la musica non cambia.
Sembra che il problema sia propio nella versione del Driver installato
sul mio PC.
Sono in attesa di un tecnico del Ced, che ne installerà una versione
più
recente di quella in uso.
Grazie a tutti.
Tommaso

Per dovere di cronaca:
Installati i driver "Oracle 10g",  stessa versione del database Oracle
in uso
con il sistema di produzione........
Risultato:
OK!
Rinnovo i ringraziamenti.
Tommaso