Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Query insert e ciclo loop

    Buonasera.

    Dovrei eseguire un query di inserimento dopo aver esaminato dei records che rispondono a determinati canoni e selezionati da una precedente query select...

    Se posiziono la query insert into fuori dal ciclo dei records mi registra solo il primo che incontra, se la posiziono all'interno del ciclo mi registra per un certo numero di volte sempre e solo il primo record.

    Qual'è il problema?
    Se è necessario posto anche il code. Grazie


  2. #2
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328
    posta il codice.
    Ma quando fai il ciclo ti sposti avanti nel recorset?
    Ci sono 10 tipi di persone al mondo, quelli che conoscono la numerazione binaria e quelli che non la conoscono!

  3. #3
    Grazie, ecco il codice: (versione con la query dentro al ciclo)
    codice:
    Set rs= Server.CreateObject("ADODB.Recordset")
    
    strSQL = "SELECT * FROM tabella1 WHERE id = "&idcd&" and campo3 IS NULL"
    rs.Open strSQL, OpenStr, 3, 3 
    
    If rs.Eof then
    response.write "niente da visualizzare"
    
    Else
    
    Do while (Not rs.Eof)
    
    sql = "SELECT * FROM tabella2"
    Set rs1 = Con.Execute(sql)
    
    strSQL = "SELECT * FROM tabella3 WHERE id="&idcd&"
    Set rs2 = Con.Execute(strSQL)
    
    IF rs2("campo1") < rs1("campo1") then
    
    sql = "INSERT INTO----------------
    set rs1 = Con.execute(sql) 
    
    rs.Movenext
    Loop
    end if
    
    rs.Close
    Set rs = Nothing
    Con.Close
    Set Con = Nothing

  4. #4
    IF rs2("campo1") < rs1("campo1") then
    sql = "INSERT INTO----------------
    set rs1 = Con.execute(sql)
    Manca un END IF
    Prova cosi
    codice:
    ....................
    .....................
    .........
    IF rs2("campo1") < rs1("campo1") then
      sql = "INSERT INTO----------------
      set rs1 = Con.execute(sql) 
    END IF 
    ............
    ..............
    Ciao
    Rox

  5. #5
    grazie, ma non cambia nulla...

  6. #6
    modifico così, ma non va:
    codice:
    Set rs= Server.CreateObject("ADODB.Recordset")
    
    strSQL = "SELECT * FROM tabella1 WHERE id = "&idcd&" and campo3 IS NULL"
    rs.Open strSQL, OpenStr, 3, 3 
    
    If rs.Eof then
    response.write "niente da visualizzare"
    
    Else
    
    sql = "SELECT * FROM tabella2"
    Set rs1 = Con.Execute(sql)
    
    strSQL = "SELECT * FROM tabella3 WHERE id="&idcd&"
    Set rs2 = Con.Execute(strSQL)
    
    Do while (Not rs2.Eof)
    
    
    IF rs2("campo1") < rs1("campo1") then
    
    sql = "INSERT INTO----------------
    set rs1 = Con.execute(sql) 
    end if
    
    rs2.Movenext
    Loop
    end if
    
    rs.Close
    Set rs = Nothing
    Con.Close
    Set Con = Nothing

  7. #7
    Scusa ma l'insert com'e'? Tu mandi avanti solo rs2 e non rs1. Mi posti l'insert?

  8. #8
    codice:
    SQL = "INSERT INTO tabella (data, disponibile, azione) VALUES (#"& data &"#, 'disponibile', 'visionare')"
    set rs1 = Con.execute(sql)

  9. #9
    Ma cosi facendo fai il confronto sempre con il primo campo del recordset rs1, che magari dopo che hai fatto l'insert diventa il campo dell'insert...insomma, perche non usi un recordset diverso?
    Set rs= Server.CreateObject("ADODB.Recordset")

    strSQL = "SELECT * FROM tabella1 WHERE id = "&idcd&" and campo3 IS NULL"
    rs.Open strSQL, OpenStr, 3, 3

    If rs.Eof then
    response.write "niente da visualizzare"

    Else

    sql = "SELECT * FROM tabella2"
    Set rs1 = Con.Execute(sql)

    strSQL = "SELECT * FROM tabella3 WHERE id="&idcd&"
    Set rs2 = Con.Execute(strSQL)

    Do while (Not rs2.Eof)


    IF rs2("campo1") < rs1("campo1") then

    sql = "INSERT INTO----------------
    set rs_nuovo = Con.execute(sql)
    end if
    rs1.Movenext
    rs2.Movenext
    Loop
    end if

    rs.Close
    Set rs = Nothing
    Con.Close
    Set Con = Nothing

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.