台灣最大程式設計社群網站
線上人數
574
 
會員總數:246038
討論主題:189625
歡迎您免費加入會員
討論區列表 >> ASP >> [ASP]請問程式這樣寫對嗎?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[ASP]請問程式這樣寫對嗎?
價值 : 0 QP  點閱數:881 回應數:12
樓主

duesnoy
初學者
24 9
14 2
發送站內信

請問我要分別開啟兩個資料表可以這樣寫嗎?
<%
Set DBConnection=Server.CreateObject("ADODB.Connection")
DBConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("smt.mdb")
Set rs=server.createobject("ADODB.Recordset")
DBConnection.cursorlocation=3
rs.open "post",DBConnection,3

if Request("KeyWord")=Empty then
    sql = "SELECT * from post order by postdate desc"
   Set rs = DBConnection.Execute( sql )
else 
   sql = "SELECT * from post where subject like '%"&Request("KeyWord")&"%'"
   Set rs = DBConnection.Execute( sql )
end if

page = Request("page") 
if page <> Empty then
   RS.AbsolutePage = PAGE
else
   RS.AbsolutePage = 1 
end if

rs.pagesize = 10
ip=request.servervariables("REMOTE_ADDR") 

Set DBConnection1=Server.CreateObject("ADODB.Connection")
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("smt.mdb")
DBConnection1.Open ConnectionString

Set rs1 = Server.CreateObject("ADODB.Recordset") 
rs1.Open counter,DBConnection1,3,3
SQL_reply = "SELECT * from counter"
rs1.MoveFirst

LASTIP = rs1("LASTIP")
NEWIP = REQUEST.servervariables("REMOTE_ADDR") 
COUNTS = rs1("counts")

IF LASTIP <>  NEWIP THEN
       COUNTS = COUNTS + 1
       rs1.Fields("COUNTS") = COUNTS
       rs1.Fields("LASTIP") = NEWIP
       rs1.Update
END IF
%>

本篇文章發表於2002-07-29 21:06
1樓
回應

maduka
檢舉此回應
rs.pagesize = 10
ip=request.servervariables("REMOTE_ADDR") 

Set DBConnection1=Server.CreateObject("ADODB.Connection")
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("smt.mdb")
DBConnection1.Open ConnectionString

Set rs1 = Server.CreateObject("ADODB.Recordset") 
rs1.Open counter,DBConnection1,3,3
SQL_reply = "SELECT * from counter"
rs1.MoveFirst

這一個部分可以改一下
rs.pagesize = 10
ip=request.servervariables("REMOTE_ADDR") 

Set rs1 = Server.CreateObject("ADODB.Recordset") 
SQL_reply = "SELECT * from counter"
rs1.Open SQL_reply,DBConnection1,3,3
rs1.MoveFirst

將第二次開啟的connection可以省略
使用的RecordSet改一下應該就可以了
本篇文章回覆於2002-07-29 21:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

duesnoy
檢舉此回應
不好意思!第40行發生錯誤???

ADODB.Recordset 錯誤 '800a0bb9' 

應用程式所使用的引數可能有類型錯誤,或超過可接受的定義範圍,或與其他引數衝突。 

/index.asp, 列40
本篇文章回覆於2002-07-29 21:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

maduka
檢舉此回應
Sorry剛才打太急了
Set rs1 = Server.CreateObject("ADODB.Recordset") 
SQL_reply = "SELECT * from counter"
rs1.Open SQL_reply,DBConnection1,3,3
rs1.MoveFirst
可以將rs1.open的connection改為DBConnection
不同的RecordSet可以使用同一個Connection
所以rs1.Open SQL_reply,DBConnection1,3,3中的DBConnection1改成一開始的DBConnection就可以了
本篇文章回覆於2002-07-29 21:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

duesnoy
檢舉此回應
SQL語法應該沒錯啊??資料表名稱也沒打錯
但為何會出現......

Microsoft JET Database Engine 錯誤 '80040e14' 

FROM 子句中的語法錯誤。 

/index.asp, 列31 
本篇文章回覆於2002-07-30 10:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

sdargon
檢舉此回應
那應該是sql語法有錯....
請列出/index.asp這個檔的第30行、31行
本篇文章回覆於2002-07-30 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

duesnoy
檢舉此回應
麻煩了~~~

29 Set rs1 = Server.CreateObject("ADODB.Recordset") 
30 SQL_reply = "SELECT * from counter"
31 rs1.Open SQL_reply,DBConnection,3,3
32 rs1.MoveFirst
本篇文章回覆於2002-07-30 10:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

sdargon
檢舉此回應
試試把第30行改成..
SQL_reply = "SELECT * from [counter]"

本篇文章回覆於2002-07-30 10:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

duesnoy
檢舉此回應
OK了~~~sdargon真是十分感謝你
但再請教一下......為何要加上[ ]中括號?
本篇文章回覆於2002-07-30 10:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

sdargon
檢舉此回應
那個是用來告訴微軟的資料庫(Access、SQL Server)說~
counter是個資料表名稱而不是其他的什麼東西
counter在Access裡可能是有某種特別函義...
本篇文章回覆於2002-07-30 11:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

阿修羅
檢舉此回應
那是保留字
你改個名字就不用了
本篇文章回覆於2002-07-30 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

duesnoy
檢舉此回應
感謝授教~~~
本篇文章回覆於2002-07-30 11:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

sdargon
檢舉此回應
既然是保留字...
那就是說那個字有功用囉....
那它的作用是什麼呢?
本篇文章回覆於2002-07-30 14:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.