혹시 asp mssql 관련 잘아시는 분 계신가요
본문
Microsoft OLE DB Provider for SQL Server error '80040e14'
Syntax error or access violation
/res.asp, line 105
자꾸 이런 에러가 발생하면서 고쳐봐도 같은 오류가 발생해서
질문 드립니다.
<%@Language="VBScript" CODEPAGE="65001" %>
<%
Response.CharSet="utf-8"
Session.codepage="65001"
Response.codepage="65001"
Response.ContentType="text/html;charset=utf-8"
Const adCmdStoredProc = 4
Const adVarChar = 200
Const adParamInput = 1
Const adInteger = 3
Const adParamOutput = 2
set conn = server.CreateObject("ADODB.connection")
conn.Open "Provider=SQLOLEDB.1;Password=****;Persist Security Info=False;User ID=****;Initial Catalog=MEDIPLUS;Data Source=xxx.xxx.xxx.xxx"
Dim DEPT_CD
DEPT_CD = request.QueryString("DeptID")
Dim DEPT_NM
DEPT_NM = request.QueryString("DeptName")
Dim DOCT_CD
DOCT_CD = request.QueryString("DoctorCode")
Dim DOCT_NM
DOCT_NM = request.QueryString("DoctorName")
Dim ReserveDate
ReserveDate = request.QueryString("ReserveDate")
Dim ReserveTime
ReserveTime = request.QueryString("ReserveTime")
Dim ReserveName
ReserveName = request.QueryString("ReserveName")
Dim Jumin1
Jumin1 = request.QueryString("Jumin1")
Dim Jumin2
Jumin2 = request.QueryString("Jumin2")
Dim Tel1
Tel1 = request.QueryString("Tel1")
Dim Tel2
Tel2 = request.QueryString("Tel2")
Dim Tel3
Tel3 = request.QueryString("Tel3")
Dim Tel
Tel = Tel1&Tel2&Tel3
Dim Jumin
Jumin = Jumin1&Jumin2
Dim come_type
come_type = request.QueryString("come_type")
Dim memo
memo = request.QueryString("VisitPurpose")
Dim GB
GB = request.QueryString("rsrv_user_gb")
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
'cmd.CommandText = "EXEC UP_H1CTI_OPDIN_C$002 @CLINIC_YMD=?, @CLINIC_TIME=?, @DEPT_CD=?, @DOCT_EMPL_NO=?, @MEMO=?, @COME_TYPE_GB=?, @PTNT_NM=?, @PTNT_PRSN_NO=?, @PHONE_NO=?, @RSRV_USER_GB=?"
cmd.CommandText = "EXEC UP_H1CTI_OPDIN_C$002 ?, ?, ?, ?, ?, ?, ?, ?, ?, ?"
cmd.Parameters.Append cmd.CreateParameter("@CLINIC_YMD", adVarChar, adParamInput, 8)
cmd.Parameters.Append cmd.CreateParameter("@CLINIC_TIME", adVarChar, adParamInput, 4)
cmd.Parameters.Append cmd.CreateParameter("@DEPT_CD", adVarChar, adParamInput, 4)
cmd.Parameters.Append cmd.CreateParameter("@DOCT_EMPL_NO", adInteger, adParamInput, 4)
cmd.Parameters.Append cmd.CreateParameter("@MEMO", adVarChar, adParamInput, 255)
cmd.Parameters.Append cmd.CreateParameter("@COME_TYPE_GB", adVarChar, adParamInput, 2)
cmd.Parameters.Append cmd.CreateParameter("@PTNT_NM", adVarChar, adParamInput, 50)
cmd.Parameters.Append cmd.CreateParameter("@PTNT_PRSN_NO", adVarChar, adParamInput, 13)
cmd.Parameters.Append cmd.CreateParameter("@PHONE_NO", adVarChar, adParamInput, 20)
'cmd.Parameters.Append cmd.CreateParameter("@RSRV_USER_GB", adVarChar, adParamInput, 1)
cmd.Parameters("@CLINIC_YMD").Value = ReserveDate
cmd.Parameters("@CLINIC_TIME").Value = ReserveTime
cmd.Parameters("@DEPT_CD").Value = DEPT_CD
cmd.Parameters("@DOCT_EMPL_NO").Value = DOCT_CD
cmd.Parameters("@MEMO").Value = memo
cmd.Parameters("@COME_TYPE_GB").Value = come_type
cmd.Parameters("@PTNT_NM").Value = ReserveName
cmd.Parameters("@PTNT_PRSN_NO").Value = Jumin
cmd.Parameters("@PHONE_NO").Value = Tel
'cmd.Parameters("@RSRV_USER_GB").Value = GB
If conn.State = 1 Then
Response.Write "데이터베이스에 연결되었습니다"
Else
Response.Write "데이터베이스 연결에 실패하였습니다."
End If
cmd.Prepared = true
' 실행 결과를 받기 위한 Recordset 객체를 생성합니다.
Set Rs = CreateObject("ADODB.Recordset")
' 저장 프로시저를 실행하고 결과를 받습니다.
rs.Open cmd <-에러가 발생하는 105줄
' 결과를 처리합니다.
If Not(rs.eof Or rs.bof) Then
id = rs("MSG")
Else
response.write "조회 안됨"
'End If
' 객체를 해제합니다.
rs.Close
Set rs = Nothing
Set cmd = Nothing
conn.Close
Set conn = Nothing
%>
답변 2
소스를 그대로 에디터에 넣었을때 line 105 근처이고 Syntax error 라면
If ~ Else ~ End If 절이 올바르지 않아 생기는문제가 아닐까 싶습니다.
' 결과를 처리합니다.
If Not(rs.eof Or rs.bof) Then
id = rs("MSG")
Else
response.write "조회 안됨"
'End If
End If
rs.Open cmd, conn
으로 해 보세요.
답변을 작성하시기 전에 로그인 해주세요.