6 Replies Latest reply: Jan 14, 2015 4:08 AM by luca mottini RSS

    aggiornamento dati

    luca mottini

      BUONGIORNO

       

      Chiedo informazioni su come fare ad aggiornare una archivio senza importare nuovamento tutto esempio

       

      se ho caricato alle 9:00 del 05/01/2015 e faccio l'aggiornamento alle 10:: del 05/01/2015 dovrebbe importarmi sono i movimenti fatti tra le 9 e le 10

       

      grazie a tutti

        • Re: aggiornamento dati
          Elena Prandoni

          Ciao.

          Puoi usare l'incremental load per estrarre solo gli ultimi dati aggiornati.

          Lo puoi fare a patto che sul DB ci sia un campo che permetta di riconoscere i nuovi dati (per esempio una data come Date_Insert)

           

          Un esempio:

           

          Let vLoadTime = Num(Now( ));

          Tabella:

          Load

          Campo_Chiave,

          Campo_1,

          ...

          Campo_n

          Sql Select from DB_source

           

          WHERE Date_Insert >= $(vUltimoLoadTime)  

          AND Date_Insert < $(vLoadTime);     //forse basterebbe mettere: where Date_Insert > ReloadTime() che è una funzione che ritorna la data e ora di ultimo reload.

           

          Concatenate(Tabella)

          Load

          Campo_Chiave,

          Campo_1,

          ...

          Campo_n

          from Dati.qvd

          Where not exists(Campo_Chiave)

          store Tabella into Dati.qvd;

           

          Let vUltimoLoadTime = vLoadTime;

           

          Bisogna stare attenti che Date_Insert abbia lo stesso formato delle variabili/funzioni (come now(), ReloadTime())

           

          Elena

          • Re: aggiornamento dati
            Massimo Grossi

            ci sono degli esempi nell'help online, cerca incremental

            ed anche qui Incremental Load

             

            di solito i problemi nascono nella formattazione/interpretazione delle date che leggi dal db (come suggerito da Elena); nel caso, indica il tuo db e posta un estratto significativo dello script che usi

              • Re: aggiornamento dati
                luca mottini

                ciao massimo

                 

                come faccio a mandarti lo script in privato

                • Re: aggiornamento dati
                  luca mottini

                  Ciao Massimo

                   

                  Come faccio a postare lo script in privato ?

                  • Re: aggiornamento dati
                    luca mottini

                    SET ThousandSep='.';
                    SET DecimalSep=',';
                    SET MoneyThousandSep='.';
                    SET MoneyDecimalSep=',';
                    SET MoneyFormat='€ #.##0,00;-€ #.##0,00';
                    SET TimeFormat='hh.mm.ss';
                    SET DateFormat='DD/MM/YYYY';
                    SET TimestampFormat='DD/MM/YYYY hh.mm.ss[.fff]';
                    SET MonthNames='gen;feb;mar;apr;mag;giu;lug;ago;set;ott;nov;dic';
                    SET DayNames='lun;mar;mer;gio;ven;sab;dom';

                    Odbc connect  to as400;

                    Tab1:
                    LOAD
                    *,

                    A§ARTI as CampoDiJoin;                            
                    SQL SELECT*

                    FROM X64021EA.DATI.BRARTI0F;

                    Tab2:
                    LOAD
                    *,

                      R§CDOG as CampoDiJoin,                       

                    Year(Date#(T§DTDO, 'YYYYMMDD')) as ANNO,
                    Month(Date#(T§DTDO, 'YYYYMMDD')) as MESE,
                    Day(Date#(T§DTDO, 'YYYYMMDD')) as GIORNO
                    Where (T§DTDO >= '20080601');

                    SQL SELECT*
                    FROM X64021EA.DATI.V5RDOC0J;

                    Tab3:
                    LOAD
                    *,
                    L§COD1 as CampoDiJoin;

                    SQL SELECT*
                    FROM X64021EA.DATI.C£LIST0F;



                          
                    LET AnnoCorrente  = year(today());
                    LET AnnoCorrMeno1 = year(today())-1;
                    LET AnnoCorrMeno2 = year(today())-2;
                    LET AnnoCorrMeno3 = year(today())-3;
                    LET AnnoCorrMeno4 = year(today())-4;
                    LET AnnoCorrMeno5 = year(today())-5;
                    LET AnnoCorrMeno6 = year(today())-6;

                  • Re: aggiornamento dati
                    Massimo Grossi

                    Posta lo script sul forum, ed io o qualcun altro proverà a rispoderti immagino; lo scopo del forum è condividere ed ampliare quel che si conosce.