台灣最大程式設計社群網站
線上人數
2043
 
會員總數:246575
討論主題:190032
歡迎您免費加入會員
討論區列表 >> MS SQL >> [SQL]跑不出來@@
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[SQL]跑不出來@@
價值 : 0 QP  點閱數:3585 回應數:6
樓主


初學者
12 6
34 4
發送站內信

請問一下為什麼會出現下面的訊息? 我那邊有設錯咩??
ADODB.Recordset (0x800A0E79)
當物件開啟時,不允許操作。
xxx.asp, line 39



subject=request.form("S1")
ans=request.form("a1")

set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeconnection="dsn=project;uID=aaa;pwd=12345"

stringforselect = " select * from subject where ans = '" & ans &"' "

rs.source= stringforselect

rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0

if rs.EOF=true then
rs.source="insert into subject (subject,ans0) Values('" & subject &"','" & ans0 &"')" 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
這邊有問題@@
else
response.write "抱歉有題目重複喔~~"
end if

rs.update
rs.close

本篇文章發表於2002-07-27 23:55
1樓
回應

成功
捐贈 VP 給 城宮智 檢舉此回應
if rs.EOF=true then
'在這一行加入rs.close看看
rs.source="insert into subject (subject,ans0) Values('" & subject &"','" & ans0 &"')" 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
這邊有問題@@
else
response.write "抱歉有題目重複喔~~"
end if
本篇文章回覆於2002-07-28 09:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

路人甲
檢舉此回應
rs.open在做Select敘述查詢後 , 必須做rs.close後才能再次使用
select或update或insert

你也可以使用兩個rscordset來解決問題
本篇文章回覆於2002-07-28 11:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應


檢舉此回應
感謝 在if rs.EOF=true then 加上rs.close
然後在直接加上
et conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeconnection="dsn=project;uID=william;pwd=12345"

okforinsert = "insert into subject (subject,ans) Values('" & subject &"','" & ans &"')"
rs.source= okforinsert


rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0

rs.Update
rs.close

就可以用了

可是再請問一下為什麼又出現 沒有權限關掉資料庫?

ADODB.Recordset (0x800A0E78)
當物件關閉時,不允許操作。


整段程式如下~

subject=request.form("S1")
ans=request.form("a1")

set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeconnection="dsn=project;uID=william;pwd=12345"

stringforselect = " select * from subject where subject = '" & subject &"' "

rs.source= stringforselect

rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0

if rs.EOF=true then
rs.close


set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeconnection="dsn=project;uID=william;pwd=12345"

okforinsert = "insert into subject (subject,ans) Values('" & subject &"','" & ans &"')"
rs.source= okforinsert


rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0

rs.Update
rs.close

else
response.write "抱歉有題目重複喔~~"
end if

rs.update
rs.close
本篇文章回覆於2002-07-28 11:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應


檢舉此回應
抱歉喔 剛剛試了一下 已經沒問題了

可是小弟有問題 rs.close 只能設定一個咩??

當上幾行有rs.close 為什麼執行rs.update會有問題

拿掉了 卻還可以insert??

修改的程式如下
-----------------------------------------------
subject=request.form("S1")
ans=request.form("a1")

set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeconnection="dsn=project;uID=william;pwd=12345"

stringforselect = " select * from subject where subject = '" & subject &"' "

rs.source= stringforselect

rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0

if rs.EOF=true then
rs.close


set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("ADODB.Recordset")
rs.activeconnection="dsn=project;uID=william;pwd=12345"

okforinsert = "insert into subject (subject,ans) Values('" & subject &"','" & ans &"')"
rs.source= okforinsert


rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open
rs_numRows = 0

response.write "新增成功!!"

else
response.write "抱歉有重複喔~~"
end if
----------------------------------------------------------------
本篇文章回覆於2002-07-28 11:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

sdargon
檢舉此回應
建議你先去弄清楚什麼是IF ...else....end if
以及sql語法select跟insert的不同
還有rs.close是幹嘛的
這三個都只是基本功,教學區應該都有講才對...
本篇文章回覆於2002-07-28 12:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

A-Ren
檢舉此回應
Subject = Request.Form("S1")
Ans = Request.Form("a1")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=project; UID=william; PWD=12345"
Conn.Open

Set Rs = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM Subject WHERE Subject = '" & Subject &"'"

Rs.Open strSQL, Conn, 1, 3

'rs_numRows = 0 不知啥用途!?

If Rs.EOF Then
strSQL = "INSERT INTO Subject (Subject, Ans) Values('" & Subject &"','" & Ans &"')"
Conn.Execute (strSQL)

Else
Response.Write "抱歉有題目重複喔~~"
Response.End
End If

Rs.Close : Set Rs = Nothing
Conn.Close : Set Conn = Nothing
本篇文章回覆於2002-07-28 12:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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