Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Caricamento Excel in gestionale Asp/Access. Cosa è meglio?

    Buongiorno, ho un gestionale scritto in asp che si appoggia ad Access.
    Alcune funzionalità prevedono la lettura di un foglio excel, o meglio di una parte di esso(le prime 50 righe).

    Il file può avere, di volta in volta dimensioni variabili e per i files troppo grossi nasce il problema.
    Solo il caricamento del file, senza neanche iniziare a leggerlo(tramite Ado), mi comporta una lentezza non indifferente, quindi non è la strada giusta.
    E naturalmente il blocco temporaneo della pagina asp.

    Ho pensato di caricarlo in access ma sarebbe comunque da leggere.

    Altra opzione, un pò macchinosa, sarebbe quella di lanciare access con una macro che importa il file, tramite un batch dos, mandato in esecuzione con una window.open.

    E da qui, avendo i dati in access, è già molto diverso.

    Insomma, cerco una soluzione lineare e fluida. Qualcuno ha idee migliori?

    Spero di essere stato chiaro.

    Grazie.

  2. #2
    facci vedere come lo carichi tramite ado

  3. #3
    Ecco il codice:

    NomeSheet = "Foglio1"
    Dim objrs
    Set adoCn2 = CreateObject("ADODB.Connection")
    With adoCn2
    .Provider="Microsoft.ACE.OLEDB.12.0"
    .ConnectionString="Data Source="& FileInpServer &";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"""
    .Open
    End With
    Set objRs = CreateObject("ADODB.Recordset")
    objrs.open "SELECT TOP 10 * from ["&nomeSheet&"$]", adocn2
    objrs.movefirst

    For x=0 To objRS.Fields.Count-1
    response.write(objRS.Fields(x).Name) / objRS.Fields(x)
    next

  4. #4
    di quanti dati stiamo parlando?

  5. #5
    Possono essere 20 righe e 10 colonne come 100.000 righe e 30 colonne.

    Questo è il problema.

    A me serve leggere solo le prime 10 righe e poi uscire.

  6. #6
    la clausola TOP 10 dovrebbe quindi essere sufficiente. la tua impressione è che ADO legga comunque tutto il file? quindi la TOP 10 di un file da 1000 righe sarebbe più lenta di quella di uno da 10 righe?

  7. #7
    Non è una mia impressione, è proprio così.

    La velocità la vedo solo se il file è di qualche kb.

    Ma con un file di 10 mb la clausola TOP non è influente.

    Testato anche con dateDiff, i minuti che intercorrono dall'inizio dello script fino alla fine sono sempre gli stessi.

  8. #8
    per scrupolo ho preparato un file di 25000 righe, ho usato il tuo stesso codice, e a me non fa differenza. l'apertura è istantanea

  9. #9
    Azz, è allora cosa potrebbe essere?

  10. #10
    vuoi che faccia la prova col tuo?

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.