Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [vbs]Se parametro query nullo...

    Ciao,
    ho due query:
    - la prima estrae una lista di oggetti (a, b, c, d, e, etc...) e li mostra a video in un ciclo do while
    - la seconda (inclusa nel ciclo do while di cui sopra) estrae e mostra a video una serie di sotto-oggetti contenente l'elemento della lista della query 1 che si sta processando nel ciclo:
    esempio database:
    codice:
    tabella 'uno':
    ID (chiave primaria): DESC
    1                     a
    2                     b
    3                     c
    
    tabella 'due':
    ID (prim.) TITOLO IDNUM (colonna riferita a ID tabella 'uno')
    1          Ciao   1 (a)
    2          Hello  2 (b)
    3          Hi     1 (a)
    codice:
    codice:
    'query uno per estrarre i dati di DESC da tabella uno
    ' eseguita nel recordset rs
    Do while not rs.Eof then
    'do ciclico per ogni elemento del recordset, nel
    'nostro esempio a, b, c
    'query due per estrarre i dati da tabella due, dove IDNUM è uguale
    ' al valore che passa ogni volta per il ciclo (a, b, c)
    'altro ciclo do while per mostrare a video i record risultanti da
    'questa ultima query
    
    'quindi vien fuori
    'con IDNUM (a)
    1 Ciao          1
    3 Hi            1
    'con IDNUM (b)
    2 Hello         2
    'con IDNUM (c)
    nessun record
    come in questo caso vorrei sapere se e come è possibile non visualizzare c, ovvero evitare che faccia il ciclo do se del valore processato non è presente alcun record

    Spero di esser stato chiaro e spero mi possiate aiutare
    ciao ciao

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Ogni volta che esegui la seconda query verifica EOF
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da kalosjo
    Ogni volta che esegui la seconda query verifica EOF
    certo
    forse non ci siamo capiti, se un ID non ha record, non deve eseguire NULLA ma passare subito al successivo ID

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Posta un po' di codice in più
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body bgcolor="#E8E8E8" alink="#0000FF" vlink="#0000CC" link="#000000">
    <%
    FileName = "totale.doc"
    
    Response.Buffer = true
    Response.ContentType = "application/msword"
    
    Response.AddHeader "content-disposition", "inline; filename=" & FileName
    
    kom = Date()
    response.Write("<font color='#999999' size='2'><div align='right'>" + CSTR(kom) + "</div></font>")
    response.write("<font size='7'><center><a name='home'>Riepilogo richieste</a></center></font>")
    ' OBAN KOKO-BO RCS
    ' ### INDEXES SUMMARY
    str2 = "Provider = SQLOLEDB; Data Source = x.x.x.x; User ID = x; Password = x; Initial Catalog = basko;"
    set conn2 = Server.CreateObject("ADODB.Connection")
    conn2.open str2
    Dim rs3, sql3
    gr = CSTR(request.QueryString("group"))
    sql3 = "SELECT * FROM [CANALI] WHERE [ISDEL] = 0 AND [ID_GRP] = " + gr + ""
    set rs3 = Server.CreateObject("ADODB.recordset")
    rs3.open sql3, conn2, 1 ,3
    Do while not rs3.Eof
    	vart2 = rs3("IDCANALE")
    	cap2 = CSTR(rs3("NUM_CAP"))
    	response.Write("
    <font size='4'>" + cap2 + ") " + rs3("DESCRIZIONE") + "</font>
    ")
    	via2 = 0
    	zzz2 = request.QueryString("query") + " AND IDCANALE = " + CSTR(vart2) + ""
    '	response.Write(zzz2)
    '	response.End()
    	set rs4 = Server.CreateObject("ADODB.recordset")
    	rs4.open zzz2, conn2, 1,3
    	Do while not rs4.eof
    		via2 = via2 + 1 
    		var3 = CSTR(via2)
    		response.Write("<font size='3'>" + cap2 + "." + var3 + " - " + RS4("TITOLO") + "</font>
    ")
    		rs4.movenext
    	loop
    	rs4.close
    	set rs4 = nothing
    	rs3.movenext
    loop
    rs3.close
    set rs3 = nothing
    conn2.close
    set conn2 = nothing
    
    
    	
    ' ### INIZIALIZZO IL PRIMO RECORDSET
    Dim con, str
    str = "Provider = SQLOLEDB; Data Source = x.x.x.x; User ID = x; Password = x; Initial Catalog = basko;"
    set conn = Server.CreateObject("ADODB.Connection")
    conn.open str
    Dim rs, sql
    gr = CSTR(request.QueryString("group"))
    sql = "SELECT * FROM [CANALI] WHERE [ISDEL] = 0 AND [ID_GRP] = " + gr + ""
    set rs = Server.CreateObject("ADODB.recordset")
    rs.open sql, conn, 1 , 3
    Do while not rs.Eof  
    	%><hr size="3" color="#000000"><%
    	vart = rs("IDCANALE")
    	cap = CSTR(rs("NUM_CAP"))
    	response.Write("<font size='4'>" + cap + ") " + rs("DESCRIZIONE") + "</font>
    
    ")
    	' ### INIZIALIZZO IL SECONDO RECORDSET
    	via = 0
    	zzz = request.QueryString("query") + " AND IDCANALE = " + CSTR(vart) + ""
    	set rs2 = Server.CreateObject("ADODB.recordset")
    	rs2.open zzz, conn, 1 ,3
    	Do while not rs2.eof
    		via = via + 1 
    		var2 = CSTR(via)
    		response.Write("<font size='3'><a name='" + cap + "." + var2 + "'>" + cap + "." + var2 + " - " + RS2("TITOLO") + "</a></font>
    ")
    		set rs6 = Server.CreateObject("ADODB.Recordset")
    		sts = rs2("IDSTATO")
    		sql6 = "Select * From [STATI] where [IDSTATO] ='" & sts & "'"
    		rs6.open sql6, conn
    			st = rs6("DESCRIZIONE")
    		rs6.close
    		set rs6 = nothing
    		%>
    <table width="75%" border="1" style="BORDER-STYLE: dashed;" bordercolor="#999999" align="center">
      <tr> 
        <td width="25%">ID:</td>
        <td width="75%"><%=rs2("IDRICHIESTA") %></td>
      </tr>
      <tr> 
        <td>Data apertura:</td>
        <td><%=rs2("DATA_OPEN") %></td>
      </tr>
      <tr> 
        <td>Stato:</td>
        <td><%=st %></td>
      </tr>
      <tr> 
        <td valign="top">Descrizione e note:</td>
        <td><%=rs2("DESCR_RICHIESTA") %></td>
      </tr>
      <tr>
        <td>Data chiusura:</td>
        <td><%=rs2("DATA_CLOSED") %></td>
      </tr>
    </table>
    <font size="2"><div align="right">Vai all'inizio</div></font>
    
    <%
    	rs2.movenext
    	loop
    	rs2.close
    	set rs2 = nothing	
    	rs.movenext
    loop
    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
    %> 
    </body>
    </html>
    eccola
    le tabelle sono:
    [code]
    tabella uno (canali):
    ID DESC
    1 A
    2 B
    3 C
    ...

    tabella due (richieste):
    ID TITOLO IDCANALE (Altri campi)
    1 Ciao 1
    2 Hello 2
    3 Hi 1

  6. #6

  7. #7

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.