Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    26

    Comando dreamweaver SQL con confronto tra date

    Ho un problema.
    Devo avere dei record su un area ripetuta.
    Il Recordset mi deve restituire tutti i record dove il campo "Data_Ultima_Visita" è inferiore ad una certa data che viene passata da un modulo con metodo GET tramite l'url.
    Il problema credo stia nel recordset e nel confronto tra date.
    Se ad esmpio se chiedo gli utenti inattivi da 2 settimane mi ritorna un numero di record Minore di quelli inattivi da 3 mesi. Dovrebbe funzionare che più mi avvicino a oggi, più il numero di date minori di oggi, dovrebbe aumentare.
    Nel modulo c'è un elenco/menù con alcune date da scegliere. Le date sono calcolate in questo modo: (esempio: per avere "un anno fa" = Date()-365, per avere "6 mesi fa" Date()-182 .. e cosi via) vedi menù select sotto:
    codice:
    <select name="Ultima_Data_Utile"  id="Ultima_Data_Utile" style="color: #ffffff; background: #CC6600" >                    
                        <option value="<%= (Date() - 365) %>" selected>Elenca utenti inattivi da almeno 1 anno</option>
                        <option value="<%= (Date() - 183) %>">Elenca utenti inattivi da almeno 6 mesi</option>
                        <option value="<%= (Date() - 92) %>">Elenca utenti inattivi da almeno 3 mesi</option>
                        <option value="<%= (Date() - 31) %>">Elenca utenti inattivi da almeno 1 mesi</option>
                        <option value="<%= (Date() - 16) %>">Elenca utenti inattivi da almeno 2 settimane</option>
                        <option value="<%= (Date() - 7) %>">Elenca utenti inattivi da almeno 1 settimane</option>
                        <option value="<%= (Date() - 2) %>">Elenca utenti inattivi da almeno 2 giorni</option>
                      </select>
    Mentre questo sotto il codice per il recordset che mi ha tirato fuori Dreamweaver:
    codice:
    Dim Recordset_Elimina_Vecchi_Utenti__MMColParamRecordset_Elimina_Vecchi_Utenti__MMColParam = "1"
    If (Request.QueryString("Ultima_Data_Utile") <> "") Then 
      Recordset_Elimina_Vecchi_Utenti__MMColParam = Request.QueryString("Ultima_Data_Utile")
    End If
    %>
    <%
    Dim Recordset_Elimina_Vecchi_Utenti
    Dim Recordset_Elimina_Vecchi_Utenti_cmd
    Dim Recordset_Elimina_Vecchi_Utenti_numRows
    
    
    Set Recordset_Elimina_Vecchi_Utenti_cmd = Server.CreateObject ("ADODB.Command")
    Recordset_Elimina_Vecchi_Utenti_cmd.ActiveConnection = MM_connessione_STRING
    Recordset_Elimina_Vecchi_Utenti_cmd.CommandText = "SELECT * FROM Clienti WHERE Data_Ultima_Visita < ?" 
    Recordset_Elimina_Vecchi_Utenti_cmd.Prepared = true
    Recordset_Elimina_Vecchi_Utenti_cmd.Parameters.Append Recordset_Elimina_Vecchi_Utenti_cmd.CreateParameter("param1", 135, 1, -1, Recordset_Elimina_Vecchi_Utenti__MMColParam) ' adDBTimeStamp
    
    
    Set Recordset_Elimina_Vecchi_Utenti = Recordset_Elimina_Vecchi_Utenti_cmd.Execute
    Recordset_Elimina_Vecchi_Utenti_numRows = 0
    %>
    <%
    Dim Repeat1__numRows
    Dim Repeat1__index
    
    
    Repeat1__numRows = -1
    Repeat1__index = 0
    Recordset_Elimina_Vecchi_Utenti_numRows = Recordset_Elimina_Vecchi_Utenti_numRows + Repeat1__numRows
    Mi date una mano?
    Grazie

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    - Che database usi?
    - In che formato è la data?
    - Meglio se non usi il recorset di dreamweaver che ha una sua sintassi ridondante
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    26
    In primis grazie........
    Database Access 2010 .mdb
    La data è in formato gg/mm/aaaa
    Non sono molto pratico e per cercare di capire faccio sempre delle prove.
    Così ho scritto questo su una cella di una tabella
    codice:
    <% If 04/07/2014 < 02/10/2014 Then        
            Response.Write("minore")
            Else
            Response.Write("maggiore")
            End If %>
    In questo modo la risposta è sbagliata, scrive "maggiore"
    Sulla cella successiva ho scritto:
    codice:
    <% If 04/07/2014 < Request.QueryString("Ultima_Data_Utile") Then            
                Response.Write("minore")
                Else
                Response.Write("maggiore")
                End If %
    La risposta è corretta scrive "minore"
    Il tutto quando Request.QueryString("Ultima_Data_Utile") è = 02/10/2014 come nel primo caso.
    Quello che devo fare è ottenere una lista di utenti del sito che non sono più entrati da tot tempo.
    Potrei quindi usare solo 2 massimo 3 opzioni (1 anno, 6 mesi, 3 mesi) e se lo faccio (elimino le altre opzioni sembra funzionare. (forse un caso, bhooo non saprei proprio)
    Ma ora vorrei capire quale è strada corretta.....

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ho qualche dubbio che il codice che hai scritto funzioni se non usi cDate (esempio)

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    26
    Ciao e grazie ancora.......
    Ho visto il tuo esempio, che funzica ok.
    Ora so come confrontare 2 date.... ma.........
    ... non riesco a riportare l'esempio sulla creazione del recordset.
    Sotto il mio recordset che non funzia....
    codice:
    <%Dim Recordset_Elimina_Vecchi_Utenti__MMColParam
    Recordset_Elimina_Vecchi_Utenti__MMColParam = "1"
    If (Request.QueryString("Ultima_Data_Utile") <> "") Then 
      Recordset_Elimina_Vecchi_Utenti__MMColParam = Request.QueryString("Ultima_Data_Utile")
    End If
    %>
    <%
    Dim Recordset_Elimina_Vecchi_Utenti
    Dim Recordset_Elimina_Vecchi_Utenti_cmd
    Dim Recordset_Elimina_Vecchi_Utenti_numRows
    
    
    Set Recordset_Elimina_Vecchi_Utenti_cmd = Server.CreateObject ("ADODB.Command")
    Recordset_Elimina_Vecchi_Utenti_cmd.ActiveConnection = MM_connessione_STRING
    Recordset_Elimina_Vecchi_Utenti_cmd.CommandText = "SELECT * FROM Clienti WHERE Data_Ultima_Visita < ? ORDER BY Data_Ultima_Visita ASC" 
    Recordset_Elimina_Vecchi_Utenti_cmd.Prepared = true
    Recordset_Elimina_Vecchi_Utenti_cmd.Parameters.Append Recordset_Elimina_Vecchi_Utenti_cmd.CreateParameter("param1", 135, 1, -1, Recordset_Elimina_Vecchi_Utenti__MMColParam) ' adDBTimeStamp
    
    
    Set Recordset_Elimina_Vecchi_Utenti = Recordset_Elimina_Vecchi_Utenti_cmd.Execute
    Recordset_Elimina_Vecchi_Utenti_numRows = 0
    %>
    Ricordi questa discussione di alcuni gg fa?

    http://forum.html.it/forum/showthrea...readid=2916567

    Stò tentando con una sintassi simile ma non riesco:

    codice:
    <%Dim Recordset_Elimina_Vecchi_Utenti__MMColParam
    Recordset_Elimina_Vecchi_Utenti__MMColParam = "1"
    If (Request.QueryString("Ultima_Data_Utile") <> "") Then 
      Recordset_Elimina_Vecchi_Utenti__MMColParam = Request.QueryString("Ultima_Data_Utile")
    End If
    %>
    <%
    Dim Recordset_Elimina_Vecchi_Utenti
    Dim Recordset_Elimina_Vecchi_Utenti_cmd
    Dim Recordset_Elimina_Vecchi_Utenti_numRows
    
    
    Set Recordset_Elimina_Vecchi_Utenti_cmd = Server.CreateObject ("ADODB.Command")
    Recordset_Elimina_Vecchi_Utenti_cmd.ActiveConnection = MM_connessione_STRING
    Recordset_Elimina_Vecchi_Utenti_cmd.CommandText = "SELECT * FROM Clienti WHERE " & cDate(Data_Ultima_Visita) & " < " & Cdate(Request.QueryString("Ultima_Data_Utile")) & " ORDER BY Data_Ultima_Visita ASC" 
    Recordset_Elimina_Vecchi_Utenti_cmd.Prepared = true
    Recordset_Elimina_Vecchi_Utenti_cmd.Parameters.Append Recordset_Elimina_Vecchi_Utenti_cmd.CreateParameter("param1", 135, 1, -1, Recordset_Elimina_Vecchi_Utenti__MMColParam) ' adDBTimeStamp
    
    
    Set Recordset_Elimina_Vecchi_Utenti = Recordset_Elimina_Vecchi_Utenti_cmd.Execute
    Recordset_Elimina_Vecchi_Utenti_numRows = 0
    %>
    Riesci a farmi un esempio di come dovrebbe essere composto il recordset?
    Tnx tnx

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non posso farti esempi, perché non sviluppo (quasi) più in asp/access, oltretutto le date in access sono gestite all'inglese mm/gg/aaaa,
    Forse è meglio se chiedi il trasferimento della discussione ad un moderatore di sezione (clicca qui) nel forum database

    Ultima modifica di cavicchiandrea; 17-10-2014 a 12:28
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.