Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33

Discussione: Doppio recordset

  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Doppio recordset

    Ciao.

    Sono alle prese con un progettino realizzato in asp, che con l'aiuto delle lezioni di html.it e la ricerca di questo forum, sto portando avanti con discrete soddisfazioni.

    Adesso però vorrei il vs. consiglio su come posso realizzare una procedura di questo tipo, che servirebbe a trasportare dei dati contenuti in un file csv in un dbase access tramite asp (il prototipo l'ho trovato con la ricerca):

    -apro un primo recordset per leggere il file csv
    -apro un secondo recordset per aprire il dbase
    -controllo che i campi del csv siano tutti compilati
    -se sono compilati li trasporto nel dbase con una query
    -se non sono compilati blocco il trasporto
    -quando si blocca la procedura dovrei indicare all'utente in quale dei campi del file csv si trova l'errore.

    E' possibile???
    Grazie

  2. #2

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Sì.



    Roby
    Almeno è una risposta...

  4. #4
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Ho scritto questo code, ma non funziona nel senso che trova sempre errori anche se il file csv è corretto
    codice:
     'FUNZIONE DI CONNESSIONE AL DATABASE ACCESS
    Function Connection()
      dim Conn: Set Conn = CreateObject("ADODB.Connection")
      Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
      Conn.open "Data Source=" & Server.MapPath("MIODATABASE.mdb") 
      set Connection = Conn
    end function
    
    DestinationFile = "CARTELLAUPLOAD/" & REQUEST.FORM("File1")
    Set Conn = Connection
    
    'APRO IL PRIMO RECORDEST PER LEGGERE IL FILE CSV
    Set recordset1 = Server.CreateObject("ADODB.Recordset")
    recordset1.Open "SELECT * from [FOGLIO1$]", "DRIVER=Microsoft Excel Driver (*.xls); DBQ=" & Server.MapPath(DestinationFile)
    
    'APRO IL SECONDO RECORDSET PER LEGGERE LA TABELLA DEL DATABASE    
    Set recordset2 = Server.CreateObject("ADODB.Recordset")
    recordset2.Open "TABELLA_DATI", GetConnection, 2, 2
    
    'CONTROLLO L'ESISTENZA DEI CAMPI NEL FILE CSV
    Do Until recordset1.Eof 
    
    ERRORE = false
    
    If recordset1("STRINGA") <> "" then 
    If ISNUMERIC(recordset1("NUMERICO")) Then
    
    ERRORE = true
    
    else
    		ERROREDARESTITUIRE = "STRINGA"
    		end if		
    else
    		ERROREDARESTITUIRE = "NUMERICO"
    		end if
    
    if ERRORE = true then
    
    'ESECUZIONE DELLA QUERY INSERT INTO
    SQL = .....
    
    recordset1.MoveNext
    
    Loop 
    
    if ERRORE = false then  
    response.write "BLOCCO PER ERRORE SU CODICE" & ERROREDARESTITUIRE
    response.end
    end if 
    
    response.write "DATI COPIATI"

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Mi commenti questa parte?

    codice:
    If recordset1("STRINGA") <> "" then 
    
       If ISNUMERIC(recordset1("NUMERICO")) Then
          ERRORE = true
       else
          ERROREDARESTITUIRE = "STRINGA"
       end if
    
    else
    
       ERROREDARESTITUIRE = "NUMERICO"
    
    end if
    Roby

  6. #6
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Mi commenti questa parte?

    codice:
    If recordset1("STRINGA") <> "" then 
    
       If ISNUMERIC(recordset1("NUMERICO")) Then
          ERRORE = true
       else
          ERROREDARESTITUIRE = "STRINGA"
       end if
    
    else
    
       ERROREDARESTITUIRE = "NUMERICO"
    
    end if
    Roby
    Ci provo con "parole mie" :

    codice:
    'SE NEL RECORDSET1 IL CAMPO STRINGA CONTIENE UN VALORE DIVERSO DA NULLO
    If recordset1("STRINGA") <> "" then 
    
    'SE NEL RECORDSET1 IL CAMPO STRINGA CONTIENE UN NUMERO
    If ISNUMERIC(recordset1("NUMERICO")) Then
    
    'ASSUMERE ERRORE COME VALORE VERO
          ERRORE = true
    
    'ALTRIMENTI SEGNALARE ERRORE SUL CAMPO STRINGA
       else
          ERROREDARESTITUIRE = "STRINGA"
       end if
    
    else
    'ALTRIMENTI SEGNALARE ERRORE SUL CAMPO NUMERICO
       ERROREDARESTITUIRE = "NUMERICO"
    end if

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Tu devi inserire solo se è un numero?
    Perché allora la variabile l'hai chiamata errore???
    Giusto per capirsi...

    Roby

  8. #8
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Tu devi inserire solo se è un numero?
    Perché allora la variabile l'hai chiamata errore???
    Giusto per capirsi...

    Roby
    Devo inserire numero solo se nel campo numerico è stato inserito un numero... mi segui?

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ok, ma quale IF non esegue correttamente?
    La prima o la seconda?

    roby

  10. #10
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    Ok, ma quale IF non esegue correttamente?
    La prima o la seconda?

    roby
    Restituisce sempre errore, anche sul file csv corretto, sempre nella prima condizione if (quella sul campo stringa)

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.