Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Controllo data prima di inserimento

    Buona domenica.

    Ho una tabella in mysql che inizialmente è vuota e va popolata con dei dati che arrivano da un form.

    Prima dell'inserimento, devo però controllare che la data di registrazione non sia già stata precedentemente inserita in tabella.

    Ho ragionato così:

    codice:
    strDataReg = Request.Form("DataReg")
    
    strQ = "SELECT * FROM " 
    strQ = strQ & " TABELLA "
    strQ = strQ & " WHERE " 
    strQ = strQ & " DATA = '" & strDataReg & "' " 
    
       Set objRs = server.createObject("ADODB.Recordset")
       objRs.Open strQ, objconn
    
    If Not objRs.EOF Then
    Do While Not objRs.Eof
    
    'INSERISCI IN TABELLA TRAMITE QUERY
    
    objRs.MoveNext() 
    Loop
    
    objRs.close()
    Set objRs = Nothing
    
    objconn.close()
    Set objconn = Nothing
    
    end if
    Ma non viene inserito nulla nella tabella anche quando questa è vuota...

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il loop non serve...
    A parte questo stampati la query prima di eseguirla e controlla che data cerchi...

    codice:
    strDataReg = Request.Form("DataReg")
    
    strQ = "SELECT * FROM " 
    strQ = strQ & " TABELLA "
    strQ = strQ & " WHERE " 
    strQ = strQ & " DATA = '" & strDataReg & "' " 
    
    response.write strQ
       Set objRs = objconn.Execute(strQ)
    
    If Not objRs.EOF Then
    
    'INSERISCI IN TABELLA TRAMITE QUERY
    
    end if
    Set objRs = Nothing
    
    objconn.close()
    Set objconn = Nothing
    Roby

  3. #3
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Grazie.

    La tabella adesso è vuota, ecco la query di selezione:

    codice:
    SELECT * FROM TABELLA WHERE DATA = '2008-03-16'

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    If objRs.EOF Then
    Roby

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da Roby_72
    codice:
    If objRs.EOF Then
    Roby
    Adesso inserisce, grazie.

    Ma perchè "If objRs.EOF Then" e non "If NOT objRs.EOF Then" ?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Hai scritto la stessa cosa...
    Perché tu devi inserire se il recordset è vuoto quindi

    If objrs.EOF then

    non se è pieno

    If not objRS.EOF

    Chiaro?

    Roby

  7. #7
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Si, scusa errore copia/incolla; tutto chiaro.

    Tu dici che il ciclo non serve, ed è ok.

    Adesso sto facendo delle prove ed invece di prendere i dati da un form li prendo da un file excel.

    Ma viene inserita solo la prima riga del file excel, perchè?

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il loop lo devi fare sul recordset del file Excel...
    Avevi parlato di form... quindi forse il loop non servita.
    Se devi scorrere il recordset del file Excel allora ti serve.

    Roby

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da Roby_72
    Il loop lo devi fare sul recordset del file Excel...
    Avevi parlato di form... quindi forse il loop non servita.
    Se devi scorrere il recordset del file Excel allora ti serve.

    Roby
    Sto facendo dei test x valutare se è meglio popolare il db con un form dove inserire manualmente decine di dati, oppure far compilare preventivamente all'utente un file excel preconfezionato e caricarlo tramite upload.

    Il codice è questo, mi sembra semplice eppure non funziona, cioè inserisce nel db solo la prima riga del file excel:

    codice:
    Set adoCn = CreateObject("ADODB.Connection")
    
    With adoCn
     .Provider="Microsoft.Jet.OLEDB.4.0"
     .ConnectionString="Data Source="&Server.MapPath("/public/PRECOMPILATO.XLS")&";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""" 
     .Open
    End With
    
    strDataReg = Upload.Form("DataReg")
    
    strSQL = "SELECT * FROM [FOGLIO1$] "
    
    With adoRs
     Set .ActiveConnection = adoCn
     .Open strSQL
    End With
    
    adoRs.MoveFirst 
    Do While Not adoRs.Eof
    
    strQ = "SELECT * FROM " 
    strQ = strQ & " TABELLA "
    strQ = strQ & " WHERE " 
    strQ = strQ & " DATA = '" & strDataReg & "' " 
    
    response.write strQ
       Set objRs = objconn.Execute(strQ)
    
    If Not objRs.EOF Then
    
    'INSERISCI IN TABELLA TRAMITE QUERY
    
    end if
    Set objRs = Nothing
    
    objconn.close()
    Set objconn = Nothing
    
    adoRs.MoveNext 
    Loop
    
    adoRs.close()
    Set adoRs = Nothing

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma scusa... chiudi la connessione dentro al ciclo...

    Roby

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 © 2026 vBulletin Solutions, Inc. All rights reserved.