Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    importare txt in mdb (..ancora)

    Ciao a tutti,
    dopo aver cercato ovunque, dopo essermi letto un milione di post, ho deciso di scrivere qua, perchè magari qualcuno ha già affrontato il problema con successo.

    Devo importare in una tabella mdb un file di testo che mi viene caricato sul server ogni 6 ore. Utilizzo con successo questo script, trovato tempo fa su un post.

    codice:
    '****************************************************************************************
    'verifico l'esistenza del file gruppi
    
    Set FileObject=CreateObject("Scripting.FileSystemObject")
    
    esiste=FileObject.FileExists(sPath & "Gruppi.txt")
    Set FileObject=Nothing
    
    if esiste = True then
    
    	sTableDb = "gruppi"
    
    	sQuery = "DELETE * FROM " & sTableDb
    	cn.Execute(sQuery)
    	response.write sTableDb & " tabella svuotata
    "
    	
    	
    	
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set txt = fso.OpenTextFile(sPath & "gruppi.txt")
    
    	
    	Set cmd = CreateObject("ADODB.Command")
    	With cmd
    	   .CommandText = "PARAMETERS pC1 Text, pC2 Text, pC3 Text, pC4 Text, pC5 Text; INSERT INTO  "& sTableDb &" (CodGruppo, GruppoITA, GruppoDEU, GruppoENG, GruppoFRA) VALUES(pC1, pC2, pC3, pC4, pC5)"
    	   .CommandType = 1
    	   Set .ActiveConnection = cn
    	   .Parameters.Refresh
    	End With
    
    	r = 0
    	With txt
    	   While not .AtEndOfStream
    	      r = r+1
    	      aCampo = Split(txt.ReadLine(),"#")
    	      With cmd
    	         .Parameters("pC1").Value = aCampo(0)
    	         .Parameters("pC2").Value = aCampo(1)
    	         .Parameters("pC3").Value = aCampo(2)
    			 .Parameters("pC4").Value = aCampo(3)
    			 .Parameters("pC5").Value = aCampo(4)
    	         .Execute
    
    			 
    	      End With
    	   Wend
    	   .Close
    	End With
    	
    	Set txt = Nothing
    	Set fso = Nothing
    	
    	Set cmd = Nothing
    	
    	response.write "Il file "& sTableDb&" è stato acquisito (" & CStr(r) & " record)
    
    "
    					
    					
    						
    						
    else
    
    	response.write "<h2>ATTENZIONE!!! il file "&sPath & "gruppi.txt non esiste</h2>"
    
    end if
    ripeto: questo script funziona alla perfezione.
    Se lancio a mano il file asp che importa il file, lo script fa il suo dovere e sono felice.

    Ovviamente però non posso lanciare a mano ogni 6 ore la pagina, ho fatto creare un batch sul server che lancia un browser con l'indirizzo della pagina (apre l'url, aspetta un po' e chiude il browser).
    Funziona, però il file da importare con il tempo è diventato un po' grosso: siamo oltre i 84000 record e il batch sul server non aspetta che sia importato tutto, ma chiude e basta, spaccando il mio script.
    Ora, ho fatto aumentare il lasso di tempo che chiude il browser e non da errori.

    La domanda è: posso fare in modo che, anzichè eliminare tutti i record nel db prima di importare quelli nuovi, lo script vada ad eliminare e importare solo i record aggiornati?

    E' fattibile? Se fosse un unico campo non ci sarebbero problemi, ma visto che sono più campi?

    Grazie a tutti, anche solo per aver letto questo post.
    Luca

  2. #2

  3. #3
    scusa, access2000

  4. #4
    se il problema è il tempo, e avendo a che fare con un file di testo, probabilmente il tempo guadagnato nel NON aggiornare te lo giocheresti nella ricerca (e il file di testo te lo devi comunque scorrere tutto!). Hai mai pensato di passare ad un db tipo M$SQL? Potresti preparare una SP che non soffrirebbe di problemi di timeout

  5. #5
    passare ad un db tipo M$SQL?
    Si, ci abbiamo pensato, ma ci manca la competenza per farlo.

  6. #6
    Originariamente inviato da aculine
    Si, ci abbiamo pensato, ma ci manca la competenza per farlo.
    vedete voi. fatelo magari fare a qualcuno che ce l'abbia, la competenza

  7. #7
    grazie, ottimo suggerimento.
    E tu pensa che io non sono neache come si pronuncia la parola SQL... (a dire il vero non so neanche dire correttamente ASP)

    Ok, ora mi butto su sql.

  8. #8
    Originariamente inviato da aculine
    grazie, ottimo suggerimento.
    E tu pensa che io non sono neache come si pronuncia la parola SQL... (a dire il vero non so neanche dire correttamente ASP)

    Ok, ora mi butto su sql.
    esse-cu-elle, parla come magni - ma da saperlo pronunciare a saperlo programmare...

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.