Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    stesso codice...due comportamenti diversi

    Ciao a tutti,
    questo è il mio problema.
    All'interno di una form ho inserito il codice (che trovate qui sotto) che richiama una procedura pl/sql per l'aggiornamento dei dati su un DB Oracle. La procedura (vi posto anche questa) è semplicissima. Infatti esegue un semplice update in tabella.
    La form rappresenta le informazioni di un cliente e i dati che devo modificare sono i servizi da questo acquistati. Ora, nella tabella RelaServAzie che vado a modificare i servizi possono essere distribuiti su più mesi (ovvero vari record) oppure su un solo mese (un solo record).

    Bene, l'update funziona qualche volta si e altre no VVoVe: , ovvero alcune volte mi esegue l'update, mentre altre non fa assolutiamente nulla, oppure mi da questo errore

    document.datiformserv(); è nullo o non è un oggetto
    Qualche consiglio, perchè sono davvero in alto mare

    Grazie a tutti in anticipo.

    Di seguito i codici (in alcuni casi sono dovuto andare a capo per problemi di visualizzazione di questo post)


    pagina principale

    codice:
          <tr>
             <td class=rigatabella colspan="4" bgcolor="#979CA9">
            SERVIZI
             </td>
            </tr>
            <%
          sqlcont = "SELECT CODI_AZIE,CODI_SERV FROM RELASERVAZIE 
    where CODI_AZIE="&vc_codiazie&" GROUP BY CODI_AZIE,CODI_SERV"
          Set rscont = Server.CreateObject("ADODB.Recordset")
          Set cn = Server.CreateObject("ADODB.Connection")
          cn.Open  application("ConnDB")
          Set rscont.ActiveConnection = cn
          rscont.Open sqlcont, cn
    %>
     <SCRIPT LANGUAGE="JavaScript">
    <%
          do while not(rscont.eof)
    %>   
     
    function checkCommitServ() {
    
       document.datiformserv.submit();
    }
    
    <%
    
          rscont.movenext
          loop
    %>
        </script>
               
          <%
          
          sqlvasprelaservaziefatt ="SELECT CODI_AZIE,CODI_SERV FROM RELASERVAZIE 
    where CODI_AZIE="&vc_codiazie&" GROUP BY CODI_AZIE,CODI_SERV"
          
          response.write sqlvasprelaservaziefatt 
          Set rsserv = Server.CreateObject("ADODB.Recordset")
          Set cn = Server.CreateObject("ADODB.Connection")
          cn.Open  application("ConnDB")
          Set rsserv.ActiveConnection = cn
          rsserv.Open sqlvasprelaservaziefatt, cn
          if not rsserv.EOF then
          %>
          <tr>
             <td colspan="4">
             <table border="0" width="100%">
              <tr class=rigatabella>
                <td width="40%" class=rigatabella>Servizio</td>
                <td width="40%" class=rigatabella>Data Disdetta</td>
                <td width="10%" align="center" class=rigatabella >Modifica</td>
              </tr>
    <%
          do while not(rsserv.eof)
    %>    
        <form name="datiformserv" method="post" 
    action="procedure/pr_modirelaservaziedatadisd.asp?vc_tipooper=U">          
              <tr>
              <td>
              <%
              	sqldescserv =" SELECT DESC_SERV "_
             		&"    from PARASERV "_
             		&"    where CODI_SERV='"& rsserv("CODI_SERV") &"' "
             		
             		response.write sqldescserv
           
             		Set rsdescserv = cn.Execute(sqldescserv) 
             		if not rsdescserv.eof then      
             		%>
    <input type="text" readonly maxlength="300" name="CODI_AZIE" 
    value="<%=rsserv("CODI_AZIE")%>" size="38" class="campireadonlynotnull">
    <input type="text" readonly maxlength="300" name="CODI_SERV" 
    value="<%=rsserv("CODI_SERV")%>" size="38" class="campireadonlynotnull">
    <input type="text" readonly maxlength="300" name="DESC_SERV" 
    value="<%=rsdescserv("DESC_SERV")%>" size="60" class="campireadonlynotnull">
    	         <% 
    	           end if
              		rsdescserv.Close
              		set rsdescserv = Nothing
                 %>
             	   
                  	</td>
                  	<td>
        	        <%
              	sqldatadisd =" SELECT DATA_DISD "_
             		&"    from RELASERVAZIE "_
             		&"    where CODI_SERV='"& rsserv("CODI_SERV") &"' "_
             		&"    AND   CODI_AZIE='"& rsserv("CODI_AZIE") &"' "
             		
             		response.write sqldescserv
           
             		Set rsdatadisd = cn.Execute(sqldatadisd)
             		if not rsdatadisd.eof then
             		%>
    
                  	
    <input type="text" maxlength="100" name="DATA_DISD" 
    value="<%=rsdatadisd("DATA_DISD")%>" onchange="javascript:contdata(DATA_DISD)"  size="12" class="campinull">
              		<% 
              		end if
              		rsdatadisd.Close
              		set rsdatadisd = Nothing
                 %>
                  	</td>
                	<td align="center">   
    <a href="javascript:javascript:checkCommitServ()" title="Salva le modifiche">
    [img]images/Icons/images.jpg[/img]</a>
                	</td>
                
              </tr>
      	</form>      
          <%      
          rsserv.movenext
          loop
          %>
    
        </table>
      
    
          <%      
    		rsserv.Close
           set rsserv = Nothing
           
           rscont.Close
           set rscont = Nothing
           
           else
          %>
         <td colspan="4">
         <table border="0" width="100%">
              <tr class=testolabel>
          	 <td>
          	  Nessun servizio acquistato
          	 <td>
          </tr>
          </table>
           <%
           end if 
           
          %>
             	</td>
              </tr>
    Procedura pr_modirelaservaziedatadisd.asp
    codice:
    <%
    iStoredProc = 4
    Set conn = Server.CreateObject("ADODB.Connection") 
    set command = Server.CreateObject("ADODB.Command") 
          conn.Open  application("ConnDB")
    command.ActiveConnection = conn 
    command.CommandText = "PR_MODISERVAZIEDATADISD" 
    command.CommandType = iStoredProc
    vc_user = session("vc_userprop")
    
    if request("vc_tipooper")="U" then
      'PROCEDURA DI MODIFICA  
      ' parametri 
        ' formato: nomecampo, tipo CAMPO 200=VARCHAR,7= DATA, tipo di parametro 1= INPUT 2=OUTPUT , lunghezza, valore 
        set objParameter = command.CreateParameter ("VN_CODI_SERV_AZIE_FATT",200,1,200,request.form("CODI_AZIE")) 
        command.Parameters.Append objParameter
        set objParameter = command.CreateParameter ("VN_CODI_PIAN_FATT",200,1,200,request.form("CODI_SERV")) 
        command.Parameters.Append objParameter
        set objParameter = command.CreateParameter ("VN_IMPO_MENS",200,1,200,request.form("DATA_DISD")) 
        command.Parameters.Append objParameter
        set objParameter = command.CreateParameter ("VC_USERPROC",200,1,50,vc_user) 
        command.Parameters.Append objParameter
        set objParameter = command.CreateParameter ("VC_CODITIPOOPER",200,1,2,"U") 
        command.Parameters.Append objParameter
    'PAREMETRI OUTPUT  
      set objParameter = command.CreateParameter ("vc_coditiro",200,2,16) 
      command.Parameters.Append objParameter
      set objParameter = command.CreateParameter ("vc_codierro",200,2,16) 
      command.Parameters.Append objParameter
      set objParameter = command.CreateParameter ("vc_descerro",200,2,200) 
      command.Parameters.Append objParameter
      command.Execute , , adExecuteNoRecords 
      ' VERIFICO EVENTUALI ERRORI  
      vn_coditiro = command.Parameters("vc_coditiro") 
      vc_risuinse = command.Parameters("vc_descerro") 
      vc_codirisuinse = command.Parameters("vc_codierro")
      'Response.write "esito " & vc_risuinse 
      
      	 response.redirect "../anagazie.asp?codiazie="&request.form("CODI_AZIE")&"&err="&vc_codirisuinse&"&descerro="&vc_risuinse
    end if
    %>
    Procedura PL/SQL
    codice:
    CREATE OR REPLACE  PROCEDURE "SIAG"."PR_MODISERVAZIEDATADISD" (
        VN_CODIAZIE     IN VARCHAR2,
                                                    VN_CODISERV     IN VARCHAR2,
                                                    VC_DATADISD     IN VARCHAR2,
                                                    VC_USERPROC     IN VARCHAR2,
                                                    VC_CODITIPOOPER IN VARCHAR2,
                                                    V_CODINEXTVAL   OUT VARCHAR2,
                                                           V_CODIERRO      OUT VARCHAR2,
                                                           V_DESCERRO      OUT VARCHAR2)
    IS
     VC_DESC_MODI VARCHAR2(4000);
    BEGIN
    IF VC_CODITIPOOPER ='U' --MODIFICA DEI DATI
    THEN
     BEGIN
         UPDATE RELASERVAZIE set
           DATA_DISD  = to_date(VC_DATADISD,'dd/mm/yyyy')
               WHERE CODI_AZIE      = VN_CODIAZIE
               AND   CODI_SERV      = VN_CODISERV;
    
    
        Commit;
    
               IF VN_CODISERV= 2 then
               BEGIN
                UPDATE ANAGUTEN set
               DATA_FINE  = to_date(VC_DATADISD,'dd/mm/yyyy')
                   WHERE NOME_UTEN   = (SELECT USER_PROP FROM ANAGAZIE WHERE CODI_AZIE=VN_CODIAZIE);
        END;
               END IF;
    
    
        Commit;
       V_CODIERRO:=2;
       V_DESCERRO :='Il dato è stato modificato';
             EXCEPTION
        WHEN OTHERS THEN
        --***********************************************************************************
        --  L'ERRORE NELLA MODIFICA DEI DATI
        --***********************************************************************************
       V_CODIERRO:=1;
        PR_GESTERRO (sqlcode,V_DESCERRO);
       P_SPEDMAILSERV('Errore Procedura PR_MODISERVAZIEDATADISD',
             'Errore UPDATE2. Azienda : '||VN_CODIAZIE ||' Servizio: '||VN_CODISERV||' Errore Oracle '||sqlcode||'-'||sqlerrm);
      END;
     END IF;
    END;

  2. #2
    E' un errore javascript lato client.
    Se succede è perchè quell'oggetto non esiste, non c'è.
    Probabilmente quell'oggetto a volte c'è e a volte no, perchè sta dentro qualche condizione lato server, ad esempio, se la condizione è vera allora hai quell'oggetto, altrimenti no, mentre la chiamata che ti da errore è sempre presente, indipendentemente dalla condizione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Quindi dovrebbere essere questa parte di codice, quella incriminata?

    codice:
            </tr>
            <%
          sqlcont = "SELECT CODI_AZIE,CODI_SERV FROM RELASERVAZIE where CODI_AZIE="&vc_codiazie&" GROUP BY CODI_AZIE,CODI_SERV"
          Set rscont = Server.CreateObject("ADODB.Recordset")
          Set cn = Server.CreateObject("ADODB.Connection")
          cn.Open  application("ConnDB")
          Set rscont.ActiveConnection = cn
          rscont.Open sqlcont, cn
    %>
     <SCRIPT LANGUAGE="JavaScript">
    <%
          do while not(rscont.eof)
    %>   
     
    function checkCommitServ() {
    
       document.datiformserv.submit();
    }
    
    <%
    
          rscont.movenext
          loop
    %>
        </script>
    Se si secondo te come dovrei modificarla?

    Grazie mille della risposta

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.