Visualizzazione dei risultati da 1 a 10 su 10

Discussione: passare varibile a sub

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112

    passare varibile a sub

    Salve a tutti e Auguri per le feste.

    Come regalo di Natale, vi chiedo di aiutarmi.
    Il problema è questo: devo realizzare un form che aggiorni tutti i record in un DB MySql 5.0
    In ASP ho realizzato un form che pesca i dati da una sub e usando
    codice:
    <%
    ' Pagina config_MOD_aggiorna_prezzi.asp
    'INIZIO IMPOSTAZIONI ******************
    Dim  objConn, elencoCampiOutPut, v, vx, connString, conta
    session.LCID = 1040
    sub elencoCampiPrezzo(objConn, byRef elencoCampiOutPut)
    
    	
    		Dim RsCampi, rsconta
    
     
    		sql = "SELECT *  FROM Prodotti  "
    		set rs = server.createObject("ADODB.Recordset")
    	rs.open sql, objConn 
    		if not rs.eof then
    		v = 0 'Contatore record
    			
    		ReDIM elencocampiOutPut   ((((Rs.RecordCount )) -1),5)
    
    		do while not rs.eof
    
    			elencoCampiOutPut(v,0) = rs("id")
    			elencoCampiOutPut(v,1) = rs("codice")
    			elencoCampiOutPut(v,2) = rs("CPrezzo")
    			elencoCampiOutPut(v,3) = rs("RPrezzo")			
    			elencoCampiOutPut(v,4) = rs("Prodotto")
    			'elencoCampiOutPut(v,5) = rs("IDProdotto")
    			' campo cancellato
    			elencoCampiOutPut(v,5) = rs("Cancellato")
    			
    			v = v + 1
    		rs.moveNext
    		loop
    			end if
    	rs.close
    	set rs = nothing
    end sub
    
    
    	dim myId
    
    sub aggiornaPrezzi(objConn)
    	strSQL = "UPDATE prodotti SET CPrezzo = "& myCPrezzo &" , Rprezzo = "& myRprezzo &"  , Cancellato = "& MyCancellato &"  WHERE id=" & myID
    	objConn.Execute(strSQL)
    end sub
    il problema è sul RECORDCOUNT che manda il tutto in timeOut.

    Ho provato a realizzare un sub ed eliminare il recordCount, mettendoci al suo posto
    la variabile CONTA



    codice:
    Sub ContaRS(objConn, ByRef Conta)
    set rs = conn.Execute("SELECT COUNT(*) AS tabella  FROM Prodotti ")
    conta = (rs("tabella"))
    
    end sub
    ma nulla di fatto.
    La variabile non viene passata.

    Come posso fare??

    Pagina Modifica
    codice:
    <% 
    call dbConnect(conn,StrConnect)
    set rs = conn.Execute("SELECT COUNT(*) AS tabella  FROM Prodotti ")
    		'
     conta = (rs("tabella"))
    
    call elencoCampiPrezzo(conn,elencoCampiOutPut)
    call elencoCampiPrezzoCor(conn,elencoCampiOutPut)
    call dbDisconnect(conn)
    %>
    
    <table style="width:100%;" cellspacing="0" cellpadding="5">
    	<tr> 
    		<td> 
    			<p style="font-family:verdana;font-size:12 px;">Modulo per la modifica dei prezzi.
    
    			Per riattivare un prodotto che risulta eliminato, togliere la spunta.</p>
    		<%if UBound(elencoCampiOutPut) > -1 then%>
    				<form method="post" action="/hotel/shop2007/admin/edit_MOD_aggiorna_prezzi.asp">
    				  <table width="100%" cellpadding="0" cellspacing="3">
                        <tr align="center" bgcolor="#FFFFCC" class="sm">
                          <td width="7%" height="10">Nr.</td>
                          <td width="19%" height="10">Codice</td>
                          <td width="39%" height="10">Prodotto nome </td>
                          <td width="14%" height="10">CPrezzo </td>
                          <td width="14%" height="10">RPrezzo </td>
                          <td width="7%" height="10">Attivo
    
                            si/no</td>
                        </tr>
                        <%for vx = 0 to UBound(elencoCampiOutPut)
    						Response.Write ("<input type=""text"" name=""id"& CStr(vx) &""" value="""& elencoCampiOutPut(vx,0) &""" />")%>
    						<% 
    					  Dim Cancellato , Tab, Tab1
    					  cancellato = elencoCampiOutPut(vx,5)  
    					  %>
                        <tr  class="<% 
    v = v + 1
    If v Mod 2 = 1 Then
    Response.Write "Tab4"
    Else
    response.Write "Tab3"
    End If
    %>">
                          <td>idNR.<%=elencoCampiOutPut(vx,0)%> (<%'=CStr(vx)+1%> <%'= tab%>)</td>
                          <td><%=elencoCampiOutPut(vx,1)%></td>
                          <td><%=elencoCampiOutPut(vx,4)%>
    					  <%
     					Response.Write(Mid(elencoCampiOutPut(vx,4), 1, 200) & "...")
    %> - <%=conta%></td>
                          <td><input type="text" name="CPrezzo<%=CStr(vx)%>" value="<%=VisualizzaPrezzo(elencoCampiOutPut(vx,2))%>" size="5" style="text-align:right;font-family:verdana;font-size:12 px;" />
    					  <input type="hidden" name="idprodotto<%=CStr(vx)%>" value="<%=elencoCampiOutPut(vx,5)%>" size="5"/>					  </td>
                          <td>
    					  <input type="text" name="RPrezzo<%=CStr(vx)%>" value="<%=VisualizzaPrezzo(elencoCampiOutPut(vx,3))%>" size="5" style="text-align:right;font-family:verdana;font-size:12 px;" />
    					  <%'= cancellato %>
    					  <%%></td>
                          <td>
                            <input type="checkbox" name="Cancellato<%=CStr(vx)%>" <% If cancellato = 1 Then response.Write("checked")%> value="1" /></td>
                        </tr>
                        <%next
    					Response.Write ("<input type=""TEXT"" name=""tot_prezzi"" value="""& vx-1 &""" />")%>
                        <tr>
                          <td colspan="6">
    					
    					
    					    <div align="center">
    
    					      
    					      
    					      
    					          <input type="submit" name="submit" value="Aggiorna i Prezzi" />
    					      </div></td>
                        </tr>
                      </table>
    				</form>
    			<%else%>
    				nessun record trovato
    			    <%end if%>		</td>
    	</tr>
    </table>
    	
    
    </td>
    						</tr>
    					</table>
    codice:
    'Pagina EDIT
    
    <%
    call dbConnect(conn, StrConnect)
    tot_prezzi = Request.Form("tot_prezzi")
    For i = 0 to tot_prezzi
    	myVar = "id"& CStr(i)
    	myID = Request.Form(myVar)
    	myVar2 = "CPrezzo"& CStr(i)
    	MyVar3 = "Rprezzo"& CStr(i)
    	MyVar5 = "IdProdotto" & Cstr(i)
    	MyVar6 = "cancellato" &Cstr(i)
    	MyCPrezzo = Request.Form(myVar2)
    	MyRprezzo = Request.Form(myVar3)
    	MyIDProdotto = Request.Form (myVar5)
    	MyCancellato = Request.Form(MyVar6)
    	MyIDProdotto = MyIdProdotto
    	MyRPrezzo = FormattaPrezzoPerDB(MyRPrezzo)
    	MyCPrezzo = FormattaPrezzoPerDB(MyCPRezzo)
    	MyIDCorrelato = Request.QueryString("MyIDCorrelato")
    	'If MyCancellato <> "true" Then MyCancellato = "False"
    	'If MyCorrelato <> "true" Then MyCorrelato = "False"
    	'call ContaRS(conn)
    		'conta = rs.Fields("tabella")
    	call aggiornaPrezzi(conn)
    	call aggiornaPrezziCor(conn)
    	
    	
    Next
    
    call dbDisconnect(conn)
    %>
    <% 
    
    response.Redirect("modifica_tutti_prezzi.asp")%>

  2. #2
    se devi fare tutti quei giri per caricare un array, perché non usi la GetRows?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    non uso getrows, perchè appesantisce troppo il carico del seerver, e cmq non funziona lo stesso.

    Sono proprio afflitto.
    Con il db di Access tutto era OK, ma il recordCount proprio non lo digerisce MYSQL

  4. #4
    Originariamente inviato da sylver65
    non uso getrows, perchè appesantisce troppo il carico del seerver, e cmq non funziona lo stesso.
    puoi spiegarmi 'sta cosa dell'appesantimento del server? mi interessa.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    avevo notato che usare getrows le risorse di ram e cpu aumentavano del 35 % rispetto all'uso di RecordCount.
    Ma non è questo il problema.
    Piuttosto mi sono arenato nel passare il valore di Conta per sostituirlo a RecordCount che va a bloccare tutto il sistema.

    se devi fare tutti quei giri per caricare un array, perché non usi la GetRows?
    Non sono riuscito a pensarne una diversa per quello che devo fare.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    Ho risolto.
    codice:
    Sql = "SELECT * FROM Prodotti "
     set rs = server.createObject("ADODB.Recordset")
    	rs.open sql, Conn
    	
    	if not rs.eof then
    	Conta = RS.GetRows	
    
    For i = 0 To Ubound(Conta,2)
    			
    	conto= Conta(0,i)
    	           next	
    	end if
    Purtroppo con GetRows, ma adesso funziona e riesco a passare l'array e a non usare recordCount.

  7. #7
    scusa, ma con la .GetRows *ottieni già* un array! nel tuo caso, CONTA è l'array con tutti i campi che ti servono!

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    tu hai ragione, ma se non facevo così non funzionava.

    Mi accontento e tiro avanti.

  9. #9
    boh, fatti tuoi, ovviamente ma se devi fare tutta quella fatica, facevi prima a fare

    Sql = "SELECT COUNT(*) FROM Prodotti "
    set rs = conn.execute(sql)
    conto = rs(0)
    set rs=nothing


  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    adesso provo a fare come dici tu.
    Non do nulla per scontato, le vie dell'asp sono infinite.
    Cmq ti ringrazio per l'aiuto che mi stai dando.

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.