 |
|
ใช้ code asp แบ่งหน้าตามตัวอย่างในบทเรียนแล้วขึ้น time out ค่ะ |
|
 |
|
|
 |
 |
|
วนลูปผิดหรือป่าวครับ ถึงขึ้น Error แบบนี้
|
 |
 |
 |
 |
Date :
13 มิ.ย. 2549 09:26:37 |
By :
... |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ช่วยดูโค้ดให้ด้วยนะค่ะ ขอบคุณค่ะ
ไม่รู้ว่าผิดตรงไหน แต่ copy โค้ดมาจากบทเรียน asp เลยนะค่ะ
<html>
<body>
<%
keyword=Request.Form("keyword")
if keyword="" then
keyword=Request.QueryString("keyword")
end if
%>
<form name="form1" method="post" action="Sample1.asp">
ค้นหาจาก Description
<input type="text" name="keyword" value="<%=keyword%>">
<input type="submit" name="Submit" value="ค้นหา">
</form>
<%
if keyword="" then
Response.write("<br>กรุณากรอก Keyword เพื่อค้นหาจาก Field Description<hr>")
else
pageLen = 10 'กำหนดจำนวนแต่ละหน้าที่ต้องการแสดงกี่ Reccord
pageNo = request.QueryString("pageNo")
if pageNo="" then pageNo = 1
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "MTD" ,"mtdasp" , "1234"
Sql="Select DepoID, Monthly, PartID, ForkNumber, Labour, Potent, Supply, Quantity, Introduc, Inoperative, Tran_in, Tran_out, Pay_in, Pay_out, Sale, Total, Spare, Oil From livestock where DepoID like '%"&Request.Form("keyword")&"%'"
Set RS =Server.CreateObject("ADODB.Recordset")
RS.open Sql,Conn,3,3
Nrecord=RS.recordcount
Rs.pageSize = pageLen
totalPage = Rs.PageCount
Rs.absolutePage = pageNo
If Rs.EOF Then
%>
ไม่มีข้อมูลในตาราง !
<%Else%>
<table border="1">
<tr bgcolor="Silver">
<td>DepoID</td>
<td>Monthly</td>
<td>PartID</td>
<td>Forknumber</td>
<td>Labour</td>
<td>Potent</td>
<td>Supply</td>
<td>Quantity</td>
<td>Introduc</td>
<td>Inoperative</td>
<td>Tran_in</td>
<td>Tran_out</td>
<td>Pay_in</td>
<td>Pay_out</td>
<td>Sale</td>
<td>total</td>
<td>spare</td>
<td>oil</td>
</tr>
<%
recNo=1
Do While Not RS.EOF and recNo <= pageLen
%>
<tr>
<td><%= Rs("DepoID")%></td>
<td><%= Rs("Monthly")%></td>
<td><%= Rs("PartID")%></td>
<td><%= Rs("Forknumber")%></td>
<td><%= Rs("Labour")%></td>
<td><%= Rs("Potent")%></td>
<td><%= Rs("Supply")%></td>
<td><%= Rs("Quantity")%></td>
<td><%= Rs("Introduc")%></td>
<td><%= Rs("Inoperative")%></td>
<td><%= Rs("Tran_in")%></td>
<td><%= Rs("Tran_out")%></td>
<td><%= Rs("Pay_in")%></td>
<td><%= Rs("Pay_out")%></td>
<td><%= Rs("Sale")%></td>
<td><%= Rs("Total")%></td>
<td><%= Rs("Spare")%></td>
<td><%= Rs("Oil")%></td>
</tr>
<%
recNo=recNo+1
RS.MoveNext
Loop
rs.close
conn.close
%>
</table>
<%
end if
%>
<br>
<br>
จำนวน: <%=Nrecord%> รายการ<br>
ขณะนี้อยู่หน้า <%=pageNo%> ในทั้งหมด <%=totalPage%> หน้า
<%
if cint(pageno) > 1 then %>
<br>
<a href="Sample1.asp?pageNo=1&keyword=<%=keyword%>">หน้าแรก</a> <a href="Sample1.asp?pageNo=<%=pageNo-1%>&keyword=<%=keyword%>">ย้อนกลับ</a>
<% end if
if cint(pageno) < totalPage then %>
<a href="Sample1.asp?pageNo=<%=pageNo+1%>&keyword=<%=keyword%>">หน้าต่อไป</a> <a href="Sample1.asp?pageNo=<%=totalPage%>&keyword=<%=keyword%>">หน้าสุดท้าย</a>
<% end if
%>
<br>
กระโดดไปหน้า
<%for idx = 1 to totalPage
%>
<a href="Sample1.asp?pageNo=<%=idx%>&keyword=<%=keyword%>">
<% if idx=cint(pageno) then%>
<b><%=idx%></b>
<%else %>
<%=idx%>
<%end if%>
</a>
<%
next
end if
%>

|
 |
 |
 |
 |
Date :
13 มิ.ย. 2549 09:31:08 |
By :
เป็ก |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
13 มิ.ย. 2549 11:24:38 |
By :
phoey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
13 มิ.ย. 2549 11:25:26 |
By :
phoey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่สามารถบอกได้ 
|
 |
 |
 |
 |
Date :
13 มิ.ย. 2549 11:26:18 |
By :
phoey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
<%
if keyword="" then
Response.write("<br>กรุณากรอก Keyword เพื่อค้นหาจาก Field Description<hr>")
else
pageLen = 10 'กำหนดจำนวนแต่ละหน้าที่ต้องการแสดงกี่ Reccord
pageNo = request.QueryString("pageNo")
if pageNo="" then pageNo = 1
Set Conn = Server.CreateObject("ADODB.Connection")
//เพิ่มตรงนี้ดูนะครับ
Conn.ConnectionTimeout = 0
Conn.CommandTimeout = 0
Conn.Open "MTD" ,"mtdasp" , "1234"
Sql="Select DepoID, Monthly, PartID, ForkNumber, Labour, Potent, Supply, Quantity, Introduc, Inoperative, Tran_in, Tran_out, Pay_in, Pay_out, Sale, Total, Spare, Oil From livestock where DepoID like '%"&Request.Form("keyword")&"%'"
Set RS =Server.CreateObject("ADODB.Recordset")
RS.open Sql,Conn,3,3
Nrecord=RS.recordcount
Rs.pageSize = pageLen
totalPage = Rs.PageCount
Rs.absolutePage = pageNo
If Rs.EOF Then
%>
|
 |
 |
 |
 |
Date :
13 มิ.ย. 2549 13:05:23 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำได้แล้วค่ะ โดยเพิ่ม
Conn.ConnectionTimeout = 0
Conn.CommandTimeout = 0
ตามที่คุณมือใหม่บอกไว้ ใช้ได้แล้ว
แต่ติดปัญหาต่อมาคือ พอคลิกที่หน้าต่อไป หรือหน้า 2 หรือคลิกที่หน้าไหนก็ตาม ข้อมูลจะไม่มาและจะขึ้นบนหนเเวปแบบนี้ค่ะ รบกวนช่วยตอบด้วยนะค่ะ
Error Type:
Active Server Pages, ASP 0113 (0x80004005)
The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.
/thai-asp/Sample1.asp
ไม่รู้จะแก้ยังไง 
|
 |
 |
 |
 |
Date :
14 มิ.ย. 2549 11:10:59 |
By :
เป็ก |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองเอา code นี้ไปดัดแปลง คือกำลังหัดใช้จาก Dream MX V.6 อยู่น่ะ
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim MM_boo_STRING
MM_boo_STRING= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test50.mdb")
%>
<%
Dim rs1
Dim rs1_numRows
Set rs1 = Server.CreateObject("ADODB.Recordset")
rs1.ActiveConnection = MM_boo_STRING
rs1.Source = "SELECT * FROM WtNames"
rs1.CursorType = 0
rs1.CursorLocation = 2
rs1.LockType = 1
rs1.Open()
rs1_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index
Repeat1__numRows = 5
Repeat1__index = 0
rs1_numRows = rs1_numRows + Repeat1__numRows
%>
<%
' *** Recordset Stats, Move To Record, and Go To Record: declare stats variables
Dim rs1_total
Dim rs1_first
Dim rs1_last
' set the record count
rs1_total = rs1.RecordCount
' set the number of rows displayed on this page
If (rs1_numRows < 0) Then
rs1_numRows = rs1_total
Elseif (rs1_numRows = 0) Then
rs1_numRows = 1
End If
' set the first and last displayed record
rs1_first = 1
rs1_last = rs1_first + rs1_numRows - 1
' if we have the correct record count, check the other stats
If (rs1_total <> -1) Then
If (rs1_first > rs1_total) Then
rs1_first = rs1_total
End If
If (rs1_last > rs1_total) Then
rs1_last = rs1_total
End If
If (rs1_numRows > rs1_total) Then
rs1_numRows = rs1_total
End If
End If
%>
<%
' *** Recordset Stats: if we don't know the record count, manually count them
If (rs1_total = -1) Then
' count the total records by iterating through the recordset
rs1_total=0
While (Not rs1.EOF)
rs1_total = rs1_total + 1
rs1.MoveNext
Wend
' reset the cursor to the beginning
If (rs1.CursorType > 0) Then
rs1.MoveFirst
Else
rs1.Requery
End If
' set the number of rows displayed on this page
If (rs1_numRows < 0 Or rs1_numRows > rs1_total) Then
rs1_numRows = rs1_total
End If
' set the first and last displayed record
rs1_first = 1
rs1_last = rs1_first + rs1_numRows - 1
If (rs1_first > rs1_total) Then
rs1_first = rs1_total
End If
If (rs1_last > rs1_total) Then
rs1_last = rs1_total
End If
End If
%>
<%
Dim MM_paramName
%>
<%
' *** Move To Record and Go To Record: declare variables
Dim MM_rs
Dim MM_rsCount
Dim MM_size
Dim MM_uniqueCol
Dim MM_offset
Dim MM_atTotal
Dim MM_paramIsDefined
Dim MM_param
Dim MM_index
Set MM_rs = rs1
MM_rsCount = rs1_total
MM_size = rs1_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%>
<%
' *** Move To Record: handle 'index' or 'offset' parameter
if (Not MM_paramIsDefined And MM_rsCount <> 0) then
' use index parameter if defined, otherwise use offset parameter
MM_param = Request.QueryString("index")
If (MM_param = "") Then
MM_param = Request.QueryString("offset")
End If
If (MM_param <> "") Then
MM_offset = Int(MM_param)
End If
' if we have a record count, check if we are past the end of the recordset
If (MM_rsCount <> -1) Then
If (MM_offset >= MM_rsCount Or MM_offset = -1) Then ' past end or move last
If ((MM_rsCount Mod MM_size) > 0) Then ' last page not a full repeat region
MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
Else
MM_offset = MM_rsCount - MM_size
End If
End If
End If
' move the cursor to the selected record
MM_index = 0
While ((Not MM_rs.EOF) And (MM_index < MM_offset Or MM_offset = -1))
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
If (MM_rs.EOF) Then
MM_offset = MM_index ' set MM_offset to the last possible record
End If
End If
%>
<%
' *** Move To Record: if we dont know the record count, check the display range
If (MM_rsCount = -1) Then
' walk to the end of the display range for this page
MM_index = MM_offset
While (Not MM_rs.EOF And (MM_size < 0 Or MM_index < MM_offset + MM_size))
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
' if we walked off the end of the recordset, set MM_rsCount and MM_size
If (MM_rs.EOF) Then
MM_rsCount = MM_index
If (MM_size < 0 Or MM_size > MM_rsCount) Then
MM_size = MM_rsCount
End If
End If
' if we walked off the end, set the offset based on page size
If (MM_rs.EOF And Not MM_paramIsDefined) Then
If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
If ((MM_rsCount Mod MM_size) > 0) Then
MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
Else
MM_offset = MM_rsCount - MM_size
End If
End If
End If
' reset the cursor to the beginning
If (MM_rs.CursorType > 0) Then
MM_rs.MoveFirst
Else
MM_rs.Requery
End If
' move the cursor to the selected record
MM_index = 0
While (Not MM_rs.EOF And MM_index < MM_offset)
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
End If
%>
<%
' *** Move To Record: update recordset stats
' set the first and last displayed record
rs1_first = MM_offset + 1
rs1_last = MM_offset + MM_size
If (MM_rsCount <> -1) Then
If (rs1_first > MM_rsCount) Then
rs1_first = MM_rsCount
End If
If (rs1_last > MM_rsCount) Then
rs1_last = MM_rsCount
End If
End If
' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters
Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth
Dim MM_removeList
Dim MM_item
Dim MM_nextItem
' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If
MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""
' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
MM_nextItem = "&" & MM_item & "="
If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
End If
Next
' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
MM_nextItem = "&" & MM_item & "="
If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
End If
Next
' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then
MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "") Then
MM_keepURL = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If
' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
If (firstItem <> "") Then
MM_joinChar = "&"
Else
MM_joinChar = ""
End If
End Function
%>
<%
' *** Move To Record: set the strings for the first, last, next, and previous links
Dim MM_keepMove
Dim MM_moveParam
Dim MM_moveFirst
Dim MM_moveLast
Dim MM_moveNext
Dim MM_movePrev
Dim MM_urlStr
Dim MM_paramList
Dim MM_paramIndex
Dim MM_nextParam
MM_keepMove = MM_keepBoth
MM_moveParam = "index"
' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 1) Then
MM_moveParam = "offset"
If (MM_keepMove <> "") Then
MM_paramList = Split(MM_keepMove, "&")
MM_keepMove = ""
For MM_paramIndex = 0 To UBound(MM_paramList)
MM_nextParam = Left(MM_paramList(MM_paramIndex), InStr(MM_paramList(MM_paramIndex),"=") - 1)
If (StrComp(MM_nextParam,MM_moveParam,1) <> 0) Then
MM_keepMove = MM_keepMove & "&" & MM_paramList(MM_paramIndex)
End If
Next
If (MM_keepMove <> "") Then
MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
End If
End If
End If
' set the strings for the move to links
If (MM_keepMove <> "") Then
MM_keepMove = Server.HTMLEncode(MM_keepMove) & "&"
End If
MM_urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="
MM_moveFirst = MM_urlStr & "0"
MM_moveLast = MM_urlStr & "-1"
MM_moveNext = MM_urlStr & CStr(MM_offset + MM_size)
If (MM_offset - MM_size < 0) Then
MM_movePrev = MM_urlStr & "0"
Else
MM_movePrev = MM_urlStr & CStr(MM_offset - MM_size)
End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<table width="600" border="1" cellspacing="1" cellpadding="1">
<tr>
<td colspan="2"><div align="center">record <%=(rs1_first)%> to <%=(rs1_last)%> of <%=(rs1_total)%></div></td>
</tr>
<%
While ((Repeat1__numRows <> 0) AND (NOT rs1.EOF))
%>
<tr>
<td width="50%"><%=(rs1.Fields.Item("numFirstName").Value)%></td>
<td width="50%"><%=(rs1.Fields.Item("numLastName").Value)%></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rs1.MoveNext()
Wend
%>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="23" colspan="2"><div align="center"><A HREF="<%=MM_movePrev%>"><<prev</A>
<%
Pnum_counter = 0
For i = 1 to rs1_total Step MM_size
Pnum_counter = Pnum_counter + 1
Pnum_PageEndCount = i + MM_size - 1
if Pnum_PageEndCount > rs1_total Then Pnum_PageEndCount = rs1_total
if i <> MM_offset + 1 then
Response.Write("<a href=""" & Request.ServerVariables("URL") & "?" & MM_keepMove & "offset=" & i-1 & """>")
Response.Write(Pnum_counter & "</a>")
else
Response.Write("<b>" & Pnum_counter & "</b>")
End if
if(Pnum_PageEndCount <> rs1_total) then Response.Write("|")
next
%>
<A HREF="<%=MM_moveNext%>">next>></A> </div></td>
</tr>
</table>
<P><FONT face="Verdana, Arial, Helvetica, sans-serif" color=#cc0000
size=2></FONT></P>
</body>
</html>
<%
rs1.Close()
Set rs1 = Nothing
%>
|
 |
 |
 |
 |
Date :
20 มิ.ย. 2549 18:15:02 |
By :
T |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|