2011-11-21 3 views
1
sqlCmd.CommandText = "SELECT clientID, clientPassword" & _ 
        " FROM Clients" & _ 
        " WHERE (clientPassword=?)" 
Set param = sqlCmd.CreateParameter("@clientPassword", 200, 1, Len(pass), pass) 
sqlCmd.Parameters.Append param 

Set rsUsers = sqlCmd.Execute 

이 쿼리는 확인을 실행, 아직에 오류가 발생 내가 나중에 거의 동일한 하나 ...여러 단계 OLE DB 작업을 매개 변수화 된 쿼리

나는이 오류가
sqlCmd.CommandText = "SELECT clientID, clientUsername, clientPassword" & _ 
        " FROM Clients" & _ 
        " WHERE (clientEmail=?)" 
Set param = sqlCmd.CreateParameter("@clientEmail", 200, 1, Len(email), email) 
sqlCmd.Parameters.Append param 

Set rsUsers = sqlCmd.Execute 

을하려고 할 때

여러 단계 OLE DB 작업에서 오류가 발생했습니다. 가능한 경우 각 OLE DB 상태 값을 확인하십시오. 어떤 일도 행해지 지 않았다.

두 열 모두 nvarchar, 255 및 50 길이입니다.

대부분의 Google 검색에서이 데이터 유형 오류가 발생하지만 아직 값을 검색 중이므로 두 번째 쿼리가 자체에서 실행되는 경우 정상적으로 작동합니다. 두 개 이상의 쿼리를 실행할 경우에만 오류가 발생합니다.

감사합니다.

감사합니다. Eduardo, 오류없이 내 쿼리를 가져 오지만 내 UPDATE 쿼리는 아무것도 수행하지 않습니다.

sqlCmd.CommandText = "UPDATE Clients" & _ 
        " SET clientUsername=?, clientPassword=?" & _ 
        " WHERE (clientEmail=?)" 
Set param = sqlCmd.CreateParameter("@clientEmail", 200, 1, Len(email), email)  
sqlCmd.Parameters.Append param 
Set param = sqlCmd.CreateParameter("@clientUsername", 200, 1, Len(user), user) 
sqlCmd.Parameters.Append param 
Set param = sqlCmd.CreateParameter("@clientPassword", 200, 1, Len(pass), pass)  
sqlCmd.Parameters.Append param 
Set rsUsers = sqlCmd.Execute 

왜 그런가? 며칠 동안이 코드 조각에 갇혀있었습니다.

+0

같은 데이터 유형의 clientPassword 및 clientEmail 열은 같은 길이? 전자 메일 변수의 값이 clientEmail 열보다 길습니까? – GTG

+0

동일한 sqlCmd를 재사용 하시겠습니까? 그렇다면 sqlCmd.Parameters에는 하나가 아닌 두 개의 매개 변수가 있습니다. 다른 sqlCmd를 사용하거나 sqlCmd.Refresh를 사용하십시오. –

답변

2

sqlCmd 변수를 다시 초기화 하시겠습니까?

나는 당신이 당신의 편집 후
주문 사항을 두 번째

편집을 실행 한 후

Set sqlCmd = server.createobject("ADODB.Command") 

누락 것 같아요, 그래서 당신은 당신이 동일한 순서로 PARAMS를 추가해야 쿼리에 사용합니다.

Set param = sqlCmd.CreateParameter("@clientUsername", 200, 1, Len(user), user) 
sqlCmd.Parameters.Append param 
Set param = sqlCmd.CreateParameter("@clientPassword", 200, 1, Len(pass), pass)  
sqlCmd.Parameters.Append param 
Set param = sqlCmd.CreateParameter("@clientEmail", 200, 1, Len(email), email)  
sqlCmd.Parameters.Append param  
Set rsUsers = sqlCmd.Execute 
+0

수정 된 질문을 참조하십시오. 나는 코멘트에 형식화 권리를 얻을 수 없었다. – AEP

+0

나는 그 말이 맞다고 믿지 않는다. 사실 매개 변수가 컬렉션 일 때 나는 3 개의 다른 객체가 필요하다는 것을 말하고 있습니다. 어쨌든 그것을 시도하고 도움이되지 않았다. – AEP

+0

param을 추가 한 후에 다시 설정하고 다시 사용합니다. 그건 문제가 아니야. – AEP

관련 문제