Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Confronto tra recordset e salvataggio in database

    Salve a tutti, avrei bisogno delle vostre indicazioni perchè sono alle prese con la realizzazione di quanto segue:

    - seleziono dalla tabella uno con una query una serie di record con certe condizioni prelevate da un form;
    - confronto il campo X della tabella numero uno con il campo X della tabella due di riferimento;
    - se tutti i valori X della tabella uno sono inferiori a quelli di riferimento scrivo con una query su una terza tabella;
    - se almeno uno dei valori X della tabella uno è superiore a quelli di riferimento avvio un secondo confronto i cui risultati scrivo con una query su una terza tabella.

    Ho buttato giù qualcosa, ma non ne sono convinto al 100%:
    codice:
     <%
    
    Function ConvertiData(data)
        giorno = Mid(data, InStr(1, data, "/") + 1, InStrRev(data, "/") - InStr(1, data, "/") - 1)
        mese = Left(data, InStr(1, data, "/") - 1)
        anno = Right(data, Len(data) - InStrRev(data, "/"))
        ConvertiData = giorno & "/" & mese & "/" & anno
    End Function
    
    blc = Request.form("rsi")
    
    funzionesplit = split(blc, "-")
    blc0 = funzionesplit(0)
    blc1 = funzionesplit(1)
    
    Set cn = Server.CreateObject("ADODB.Connection")
    Open = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("generale.mdb")
    cn.open Open
    
    Set recordset = Server.CreateObject("ADODB.Recordset")
    
    'seleziono dalla tabella uno con una query una serie di record con certe condizioni prelevate da un form;
    
    strSQL = "SELECT * FROM tabellauno WHERE id_rs = "&blc0&" and durata IS NULL"
    recordset.Open strSQL, Open, 3, 3 
    
    'confronto il campo X della tabella numero uno con il campo X della tabella due di riferimento;
    
    If recordset.Eof then
    response.write "NON CI SONO RECORD DA ANALIZZARE"
    
    Else
    
    Do while (Not recordset.Eof)
    
    variabile = 0
    
    SQLDown = "SELECT CO_PPM, CO2_PPM, H2_PPM, CH4_PPM, C2H6_PPM, C2H4_PPM, C2H2_PPM, CONTENUTO_ACQUA_PPM FROM percentili"
    Set recdown = cn.Execute(SQLDown)
    
    strSQL = "SELECT CO_PPM, CO2_PPM, H2_PPM, CH4_PPM, C2H6_PPM, C2H4_PPM, C2H2_PPM, CONTENUTO_ACQUA_PPM FROM tabellauno WHERE id_rs="&blc0
    Set rec = cn.Execute(strSQL)
    
    IF REC("CO_PPM") < RECDown("CO_PPM") then
    response.write "co
    "
    ELSE
    variabile = variabile+1
    END IF
    
    IF REC("CO2_PPM") < RECDown("CO2_PPM") then
    response.write "co2
    "
    ELSE
    variabile = variabile+1
    END IF 
    
    recordset.Movenext
    Loop
    
    'se almeno uno dei valori X della tabella uno è superiore a quelli di riferimento avvio un secondo confronto i cui risultati scrivo con una query su una terza tabella.
    
    if variabile > 0 then
    
    SQL = "SELECT C2H2_C2H4_PPM, CH4_H2_PPM, C2H4_C2H6_PPM FROM DGA" 
    Set RECDown=cn.Execute(SQL)
    
    SQLDown = "SELECT C2H2_C2H4_PPM, CH4_H2_PPM, C2H4_C2H6_PPM FROM tabellauno WHERE id_rs="&blc0
    Set REC=cn.Execute(SQLDown)
    
    strSQL = "SELECT * FROM tabellauno WHERE id_rs="&blc0
    Set strREC=cn.Execute(strSQL)
    
    strSQL1 = "SELECT * FROM Percentili" 
    Set strREC1=cn.Execute(strSQL1)
    
    If recordset.Eof then
    response.write "NON CI SONO RECORD DA ANALIZZARE"
    
    Else
    
    Do while (Not recordset.Eof)
    
    IF REC("CH4_H2_PPM") < 0.1 AND REC("C2H4_C2H6_PPM") < 0.2 then
    ...
    end if
    
    IF REC("C2H2_C2H4_PPM") > 0.6 AND REC("C2H2_C2H4_PPM") < 2.5 AND REC("CH4_H2_PPM") > 0.1 AND REC("CH4_H2_PPM") < 1 AND REC("C2H4_C2H6_PPM") > 2 then
    ...
    set RECDown = cn.execute(sql)
    
    else
    
    IF REC("C2H2_C2H4_PPM") > 1 AND REC("CH4_H2_PPM") > 0.1 AND REC("CH4_H2_PPM") < 0.5 AND REC("C2H4_C2H6_PPM") > 1 
    ...
    end if
    end if
    
    IF REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") < 1 then
    ....
    end if
    
    IF REC("C2H2_C2H4_PPM") < 0.1 AND REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") > 1 AND REC("C2H4_C2H6_PPM") < 4 then
    ...
    end if
    
    IF REC("C2H2_C2H4_PPM") < 0.2 AND REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") > 4 then
    ...
    end if
    
    if variabile = 0 then
    ...
    end if
    
    recordset.Movenext
    Loop
    end if
    else
    
    strSQL = "SELECT * FROM tabellauno WHERE id_rs="&blc0
    Set strREC=cn.Execute(strSQL)
    data = ConvertiData(CStr(strREC("data_prelievo")))
    
    SQL = "INSERT INTO
    ....
    
    sSQL = "UPDATE tabellauno set durata = 'ok' WHERE id_rs = "&blc0
    Set oRs = cn.Execute(sSQL)
    
    end if
    
    recordset.Close
    Set recordset = Nothing
    cn.Close
    Set cn = Nothing  
    end if
    %>
    vi sembra corretto?

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Sto provando il codice che non restituisce errori ma non registra nel dbase quando il confronto tra i valori è rispettato...

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    in pratica quando faccio il primo confronto non scrive nulla; mentre sul secondo confronto scrive correttamente perchè?

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Voi come fareste?

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    up

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.