Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Interrogazione generale di un dbase

    Ciao al forum.

    Ho caricato in un dbase circa 2600 records; per ognuno di questi è possibile eseguire una semplice procedura di interrogazione che restituisce un determinato risultato (positivo o negativo).

    Per il momento la procedura funziona singolarmente per ciascuno dei records, ma sarebbe possibile con un unico "comando asp" interrogare ed avere il risultato contemporaneamente per i 2600 records?

    Grazie

  2. #2
    non e' molto chiaro... fa' un esempio, pls

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie per la risposta.

    Dunque... ogni record ha questi campi:
    id, regione, provincia, risultato

    tramite una query interrogo quel record ed in base a dei parametri combinati, che riguardano regione e provincia, viene restituito il risultato che viene scritto nel campo risultato del record interrogato.

    Vorrei evitare di scorrere i records uno per uno... una cosa del genere, che richiami dal dbase soltanto quei records con il campo "risultato" vuoto (cioè non analizzati):
    codice:
    Dim adoCon, OpenStr, rsCommon, strSQL, sSQL
    
    Set adoCon = Server.CreateObject("ADODB.Connection")
    OpenStr = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("upload.mdb")
    adoCon.open OpenStr
    
    'creo l'oggetto rsCommon
    Set rsCommon = Server.CreateObject("ADODB.Recordset")
    
    'apro la connessione al db
    strSQL = "SELECT * FROM ListFiles WHERE Attivo = NULL Order by ID Asc"
    rsCommon.Open strSQL, OpenStr, 3, 3 
    
    'controllo se esistono record
    If rsCommon.Eof then
    
    .......
    
    Else
    
    .......
    
    'inizia il ciclo di analisi records
    Do while (Not rsCommon.Eof)
    
    ........
    
    rsCommon.Movenext
    Loop
    
    rsCommon.Close
    Set rsCommon = Nothing
    adoCon.Close
    Set adoCon = Nothing  
    end if

  4. #4
    aggiungi i parametri di analisi nella where. ad esempio, se nella tua analisi controlli che la provincia sia varese, aggiunngi alla tua WHERE ... AND campo_provincia='VA'. a questo punto il lavoro di scrematura lo fa il motore del db.... spero di aver capito il problema

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da optime
    aggiungi i parametri di analisi nella where. ad esempio, se nella tua analisi controlli che la provincia sia varese, aggiunngi alla tua WHERE ... AND campo_provincia='VA'. a questo punto il lavoro di scrematura lo fa il motore del db.... spero di aver capito il problema
    Grazie hai centrato il problema.
    Un dubbio: quando devo includere i records che hanno il campo risultato vuoto come lo cerco con la query?

  6. #6
    risultato vuoto? cos'e'?

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da optime
    risultato vuoto? cos'e'?
    "risultato" è un campo tipo stringa della tabella del dbase dove sono caricati i records; inizialmente vuoto viene popolato al momento della interrogazione di un determinato record, tramite una query di update:
    codice:
    sSQL = "UPDATE ListFiles set Risultato = 'Positivo' WHERE UploadID = "&cod  
    Set oRs = ConnDown.Execute(sSQL)

  8. #8
    ... WHERE Risultato NOT = 'Positivo'

    that easy!

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie ma la query:
    codice:
    strSQL = "SELECT * FROM ListFiles WHERE Reg = '"&cod1&"' and Risultato NOT = 'Positivo' "
    restituisce:
    Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][ODBC Microsoft Access Driver] Syntax error in query expression 'Reg = 'SIC' and Risultato NOT = 'Positivo''.
    :master:

  10. #10
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Dunque il problema con la query l'ho risolto, ma il code pur non restituendo nessun errore non registra niente nel dbase, dove sbaglio?:
    codice:
    <%
    
    Dim adoCon, OpenStr, rsCommon, strSQL, sSQL, cod, falso
    
    'recupero dal form
    cod = Request.form("cp")
    
    'splitto
    DIM ARR_DALFORM
    ARR_DALFORM = split(cod, "-")
    cod0 = ARR_DALFORM(0)
    cod1 = ARR_DALFORM(1)
    
    'imposto connessione
    Set adoCon = Server.CreateObject("ADODB.Connection")
    OpenStr = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("upload.mdb")
    adoCon.open OpenStr
    
    'creo l'oggetto rsCommon
    Set rsCommon = Server.CreateObject("ADODB.Recordset")
    
    'apro la connessione al db
    strSQL = "SELECT * FROM ListFiles WHERE id_cat = "&cod0&" and Stato IS NULL"
    rsCommon.Open strSQL, OpenStr, 3, 3 
    
    'controllo se esistono record
    If rsCommon.Eof then
    response.write "NON CI SONO RECORD DA ANALIZZARE"
    
    Else
    
    'inizia il ciclo di analisi records
    Do while (Not rsCommon.Eof)
    
    'imposto falso
    falso = 0
    
    'query su regioni
    SQLDown = "SELECT * FROM regioni"
    Set recdown = adoCon.Execute(SQLDown)
    
    'query su tbl generale
    strSQL = "SELECT * FROM ListFiles WHERE id_cat="&cod0
    Set rec = adoCon.Execute(strSQL)
    
    'se 
    IF REC("numero") > RECDown("numero") then
    response.write ""
    ELSE
    falso = falso+1
    END IF
    
    'se
    if falso > 0 then
    
    SQL = "SELECT * FROM DGA" 
    Set RECDown=adoCon.Execute(SQL)
    
    SQLDown = "SELECT * FROM ListFiles WHERE id_cat="&cod0
    Set REC=adoCon.Execute(SQLDown)
    
    strSQL1 = "SELECT * FROM Percentili" 
    Set strREC1=adoCon.Execute(strSQL1)
    
    IF REC("valore") < 0.1 AND REC("valore1") < 0.2 then
    SQL = "INSERT INTO .....
    set RECDown = adoCon.execute(sql) 
    end if
    
    
    if falso = 0 then
    SQL = "INSERT INTO .....
    set RECDown = adoCon.execute(sql)
    end if
    
    else
    
    SQL = "INSERT INTO analisi ....
    set RECDown = adoCon.execute(sql) 
    
    sSQL = "UPDATE ListFiles set Risultato = 'positivo' WHERE id_Cat = "&cod0
    Set oRs = adoCon.Execute(sSQL)
    
    end if
    
    rsCommon.Movenext
    Loop
    
    rsCommon.Close
    Set rsCommon = Nothing
    adoCon.Close
    Set adoCon = Nothing  
    end if
    %>

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.