Visualizzazione dei risultati da 1 a 6 su 6

Discussione: jdbc e as400

  1. #1

    jdbc e as400

    Buongiorno

    mi auguro che qualcuno possa aiutarmi per questo problema, e che questo post sia corretto in questa sezione!!

    utilizzo il driver jdbc

    com.ibm.as400.access.AS400JDBCDriver

    e noto che il campo timestamp viene trattato in maniera diversa dal timestamp di AS400 dunque quando utilizzo JDBC per caricare/scaricare i dati su/da AS immancabilmente vengono troncati

    da JDBC

    '2008-02-05 11:21:28'

    mentre su AS400

    '2008-02-05 11:21:28.123456'

    a qualcuno è già successo, mi potete aiutare??

    grazie della risposta!!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Benvenuto sul forum

    Java non e' JavaScript.... ti sposto
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: jdbc e as400

    Originariamente inviato da alegdegoki
    Buongiorno

    mi auguro che qualcuno possa aiutarmi per questo problema, e che questo post sia corretto in questa sezione!!

    utilizzo il driver jdbc

    com.ibm.as400.access.AS400JDBCDriver

    e noto che il campo timestamp viene trattato in maniera diversa dal timestamp di AS400 dunque quando utilizzo JDBC per caricare/scaricare i dati su/da AS immancabilmente vengono troncati

    da JDBC

    '2008-02-05 11:21:28'

    mentre su AS400

    '2008-02-05 11:21:28.123456'

    a qualcuno è già successo, mi potete aiutare??

    grazie della risposta!!
    Non ho mai lavorato con AS-400, però sei sicuro della "precisione" utilizzata nel campo?
    Che io sappia tutti i sistemi esistenti (ripeto, non conosco così bene AS-400) possono registrare gli orari con una precisione che va al millisecondo... non a caso, Java (come altri linguaggi) utilizza delle strutture dati che offrono "solo" questo tipo di precisione... quindi, con un accuratezza di 3 cifre dopo i secondi....


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    grazie!

    il dato senza le ultime 6 cifre è estratto con un'operazione di unload attraverso jdbc

    mentre quello da as400 facendo select direttamente su as400 (stessa tabella) ha i 6 decimali finali

    in effetti anche secondo me c'è un discorso di precisione ma credo che

    com.ibm.as400.access.AS400JDBCDriver

    sia un po' come una scatola nera, o si può personalizzare???

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il driver JDBC è sicuramente una scatola nera e solo chi lo fornisce (IBM, in questo caso) può andarci a mettere le mani.

    Il mio discorso era più a monte: non credo sia possibile, a priori, ottenere una simile precisione dei dati se il sistema di partenza (Java) non ce l'ha.

    Il tipo di dato "data" in Java ha una precisione pari al millisecondo... quindi, una lettura dal driver JDBC farebbe comunque perdere in precisione, arrotondando al millisecondo. Stesso discorso per la scrittura. Inviare una data Java al DB sarebbe come inviare una data nel seguente formato:
    codice:
    YYYY-MM-DD HH:mm:ss.xxx000
    Dovresti controllare la documentazione del driver JDBC (che dovrebbe essere fornita da IBM assieme al driver stesso) per capire cosa dice a riguardo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    caspita hai ragione!

    infatti vedo un comportamento diverso sulla tabella: le righe scritte con processi java hanno una precisione di 6 decimali, le righe scritte con processi as hanno una precisione di 3 decimali, e sono infatti le uniche che incrocio con lo scarico jdbc (questo cavolo di timestamp è in chiave!!)

    secondo te si può "abbassare" la precisione decimale dei processi java??

    adesso il formato è:
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSSSSS");

    si può impostare così?
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS");

    te lo chiedo per saper rispondere prontamente in caso mi dicano che non è possibile modifcare niente (la modifica spetterebbe ad un altro gruppo di lavoro.....)

    grazie mille e

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.