Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    19

    Standardizzazione procedure

    Ciao a tutti...
    Solitamente le operazioni che vengono fatte in lettura di db sono passaggio di parametro e restituzione del risultato.
    Nel mio tentativo si standardizzare questa procedura ho fatto lo script, che incollerò in fondo.

    Se i parametri inviati sono corretti funziona ma nel caso "else" va in errore perchè i gli chiedo il risultato di un array che non esiste.
    Qualcuno sa, evitando di scrivere km di codice prendendomi a prescindere il numero dei campi nel db, come bypassare questo errore?
    Spero di essermi spiegato e grazie in anticipo.
    codice:
    <%
    Public Function loadTblRow(TBL, FIELD, PARAM, CN)
    	
    	If CN = True Then Call OpenConn()
    	SQL_LTR ="Select * From [" & TBL & "] Where " & FIELD & " = " & Int(PARAM)
    	Set RS_LTR = Server.CreateObject("ADODB.Recordset")
    	RS_LTR.Open SQL_LTR, Conn, 1, 2
    		If Not RS_LTR.EOF Then
    			LTR = 0 
    			'IMPOSTO IL VALORE DEI CAMPI IN ARRAY
    			For Each Col In RS_LTR.Fields
    				ReDim Preserve tempArray(LTR)
    				tempArray(LTR) = Col.Value
    				LTR = LTR + 1
    			Next
    			'IMPOSTO IL VALORE DELLA FUNZIONE IN ARRAY
    			loadTblRow = tempArray
    		Else
    			loadTblRow = Array(Null)
    		End If
    	RS_LTR.Close
    	Set RS_LTR = Nothing
    	If CN = True Then Call CloseConn()
    
    End Function
    %>
    La chiamata della funzione è questa:

    codice:
    <%Response.Write loadTblRow("NOMETABELLA", "CAMPODISCRIMINANTE", "VALOREDACERCARE", True)(2)%>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Scusa ma perché non usi la GetRows() che riporta da sé praticamente quello che serve a te (se non ho capito male)?

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    19
    Ciao Roby_72
    Scusa il ritardo
    Ho risolto con RS_LTR.Fields.Count.
    Posto il codice.
    codice:
    <%
    Public Function loadTblRow(TBL, FIELD, PARAM, CN)
    	
    	Dim LTR, FIELDSNUMBER
    	LTR = 0
    	If CN = True Then Call OpenConn()
    	SQL_LTR ="Select * From [" & TBL & "] Where " & FIELD & " = " & Int(PARAM)
    	Set RS_LTR = Server.CreateObject("ADODB.Recordset")
    	RS_LTR.Open SQL_LTR, Conn, 1, 2
    	
    		FIELDSNUMBER = RS_LTR.Fields.Count
    
    		If Not RS_LTR.EOF Then
    			
    			For Each Col In RS_LTR.Fields
    				ReDim Preserve tempArray(LTR)
    				tempArray(LTR) = Col.Value
    				LTR = LTR + 1
    			Next
    		
    		Else
    		
    			For LTR = 0 To FIELDSNUMBER-1
    				ReDim Preserve tempArray(LTR)
    				tempArray(LTR) = Null
    			Next
    		
    		End If
    		
    	loadTblRow = tempArray
    	
    	RS_LTR.Close
    	Set RS_LTR = Nothing
    	If CN = True Then Call CloseConn()
    
    End Function
    %>

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.