2015-12-07 32 views
0

代碼:參數的錯誤類型,超出可接受的範圍內,或者是在一個衝突的另一個VBScript錯誤

<%@LANGUAGE="VBSCRIPT"%> 

<% 
set updatetime = Server.CreateObject("ADODB.Connection") 
updatetime.open "DRIVER=SQL Server;***************************************" 
If request.form("in_out")="checkin" then 
updatetime.execute ("insert into hourlist (username, checkintime, paid,breakCount) values ('"&session("MM_username")&"', '"&Now()&"', 0, 2) ") 

End if 

If request.form("in_out")="checkout" then 
updatetime.execute ("update hourlist set checkouttime='"&Now()&"' where username='"&session("MM_username")&"' and checkouttime is NULL") 
End if 
If request.form("in_out")="breakcheckin" then 
updatetime.execute ("update hourlist set breakCheckIn='"&Now()&"' where ID='"&session("MM_ID")&"' ") 
updatetime.execute ("update hourlist set breakCheckOut=Null where ID='"&session("MM_ID")&"' and breakCheckOut is not NULL ") 
End if 
If request.form("in_out")="breakcheckout" then 
updatetime.execute ("select breakCheckIn from hourlist where ID='"&session("MM_ID")&"' ") 
Dim BTD 
BTD=Round(Csng(DateDiff("n", (updatetime.Fields.Item("breakCheckIn").Value), (Now()))), 2) 
updatetime.execute ("update hourlist set breakCheckOut='"&Now()&"', breakCount=breakCount-1 where ID='"&session("MM_ID")&"' ") 
updatetime.execute ("update hourlist set breakTime='"&BTD&"' where ID='"&session("MM_ID")&"' ") 
updatetime.execute ("update hourlist set breakCheckIn=NULL where ID='"&session("MM_ID")&"' and breakCheckIn is not NULL ") 
End if 
updatetime.close 
set updatetime=nothing 
response.redirect "employee.asp?in_out="&request.form("in_out") 

%> 

根據無線電選擇我做的事情不同勢,我越來越「 ADODB.Connection錯誤'800a0bb9'「在21行錯誤(BTD =圓...線)有人可以告訴我我在那條線上做錯了什麼?我寫了「updatetime.Fileds」錯了還是什麼?

Sry爲我的壞英語。

+0

嘗試使用ADODB.Command對象來執行您的SQL查詢。 http://www.w3schools.com/asp/ado_ref_command.asp http://www.w3schools.com/asp/met_comm_execute.asp – mjw

+0

有沒有辦法使用連接並獲得需要的領域白衣? – StanchAftw

回答

0
Dim myConnection, myRecordset  
set myRecordset = Server.CreateObject("ADODB.Recordset") 
set myConnection = Server.CreateObject("ADODB.Connection") 
myConnection.Open "DRIVER=SQL Server;***************************************" 

myRecordset.Open "select breakCheckIn from hourlist where ID='"&session("MM_ID")&"' ", myConnection 

Dim bciValue = myRecordset("breakCheckIn") 
Response.Write "BreakCheckIn value is: " & bciValue 

myRecordset.Close 
myConnection.Close 
+1

首先你錯過了'Set',現在你在調用Sub時使用()。 –

+0

發生經典和.net,thx之間的切換 – mjw

0

您的updatetime是一個連接,而不是一個記錄集(帶.Fields)。您可能需要結果/記錄從

updatetime.execute ("select breakCheckIn from hourlist where ID='"&session("MM_ID")&"' ")

存儲在一個變量,並在後來的聲明(S)使用其字段(S)(或 - 更好 - 參數化查詢)。

更新WRT評論:

使用Set分配對象(記錄)給一個變量。

+0

'昏暗BCI 昏暗BTD BCI = updatetime.execute BTD = ROUND(CSNG(DATEDIFF( 「n 」個( '&會議( 「MM_ID 」)&「」「 從hourlist其中ID =選擇breakCheckIn」'), ())),2)' 仍然不能正常工作...我需要製作Recordset還是可以使用Connection來獲取所需的內容來自DB的字段? – StanchAftw

+0

泰 '昏暗BTD 設置BCI = updatetime.execute( 「從hourlist選擇breakCheckIn其中ID = ' 」&會議(「 MM_ID 」)&「' 」) BTD = ROUND(CSNG(DATEDIFF(「 N」,(BCI .Fields.Item(「breakCheckIn」)。Value),(Now()))),2)' 就是答案。 :) – StanchAftw

相關問題