do , loop , for,next asp

  • Creatore Discussione Creatore Discussione Snappy
  • Data di inizio Data di inizio

Snappy

Nuovo Utente
20 Dic 2005
4
0
0
Ciao spero di trovare una mano per questo script con questo script conto i giorni interni a due date che imposto o cmq ricevo da form .nelle prime righe mi connetto al database piu precisamente alla tabella ordine da dove ricavo tutti i valori con un detterminato id ... ora vorrei che lo script si ripetesse per tutti i record conteneti quel detterminato id ... il problema che cosi lo script mi si ripete all'infinito....
Penso che ci siano problemi di loop ,for next ecc.
'***************************----------contA GIORNI----------------------***************************


'*********Dettermino un periodo**********

function period(argValue,argTot)
period = (argValue mod argTot)
exit function
end function

p_order_id = 25 'lo ricevo tramite form ora lo impongo per velocizzare il processo%>

<%

'/////////Mi connetto al database//////////////////////////////////////////////////////////////////////---------------------------
Dim outpostDB000
Set outpostDB000 = Server.CreateObject("ADODB.Connection")
outpostDB000.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("mdb-database/outpost.mdb")
set rs2000 = server.CreateObject("ADODB.Recordset")
rs2000.open "select * from ordine where order_id = "&p_order_id&" ",outpostDB000
do while not rs2000.eof
dim tipo
tipo=rs2000("tipo_camera")


strDataInizio1 = cdate("19/02/2005")
strDataFine1 = cdate("22/02/2005")

strDataInizio = strDataInizio1
strDataFine = strDataFine1







j = Weekday(cDate(strDataInizio))

'************ Imposto il for next fino alla condizione di i = alla differenza dei giorni relativi alle due date******

for i = 0 to datediff("d" ,cDate(strDataInizio),cDate(strDataFine))



'******Dettermino il giorno tramite la funzione period
oggi = period(i+j-1,7)+1
response.write dateadd("d",strDataInizio,i) & " - " & weekdayname(oggi)

if oggi = 1 then
response.write " - yes domenica"

end if



if oggi = 2 then
response.write " - OK lunedi"


end if

if oggi = 3 then
response.write " - OK martedi"


end if

if oggi = 4 then
response.write " - OK mercoledi"


end if


if oggi = 5 then
response.write " - OK-giovedi"


end if

if oggi = 6 then

response.write " - OK - venerdi"


end if

if oggi = 7 then
response.write " - OK--sabato"


end if

response.write "<br/>"
Next


End If
loop


Spero di essermi spiegato




:hammer: :hammer: :hammer: :gun:
 
order_id è di tipo numerico?

in ogni caso, perchè lanci la query nel recordset rs2000 in quel modo? fai cosi

rs2000.open "select * from ordine where order_id = " & p_order_id,outpostDB000,1

poi non ciclare le variabili, prova a dichiararle fuori dal do ...
 
lop do for next

:dipser: :dipser: :dipser: :dipser: :dipser: :dipser:
grazie per la risposta. c'ho provato ma me li stampa per una volta solo e non per il numero di record presenti nel database.
cmq order id è numerico...
non riesco proprio a farlo funzionare, ho provato anche a usare if i = datediff( "d" ,cdate( strdatainizio) , cdate(strdatafine)) then
exit for quindi il loop poi endif
ma purtroppo niente di fatto...


Ringrazio ancora per il buono spirito di questo forum:byebye:

sono accettati qualsiasi genere di consigli
 
Ciao , sinceramente se elimino la funzione conta giorni ,lasciando la connessione al database e alla relativa tabella e impongo il comando response.write per la variabile (tipo) il loop funziona correttamente..... mostrandomi quindi i valori presenti nella tabela aventi quel determinato order_id


non ho la piu pallida idea di come proseguire


Grazie sono accetati ogni genere di consiglio

:confused: :eek:
 

Discussioni simili