2014-07-22 7 views
0
내가 업데이트 할 수 있지만 ID가 작동하지 않았다 트링하고

에 대한 오류가 발생, 내 DB에는 .... 업데이트 가능한 쿼리

'데이터베이스 연결을 쿼리를 업데이트 할 수 없습니다 - 데이터베이스

경로를 지정하는 것을 잊지
Set Conn = Server.CreateObject("ADODB.Connection")   
Conn.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Server.MapPath("dbbb.mdb") 

' Get data from the database depending on the value of the id in the URL 
Dim strSQL  

strSQL = "INSERT INTO people (" 

strSQL = strSQL & "firstName , " 
strSQL = strSQL & "lastName , " 

strSQL = strSQL & "phone , " 
strSQL = strSQL & "birthDate) " 

strSQL = strSQL & "VALUES(" 

strSQL = strSQL & "'Cousin', " 

strSQL = strSQL & "'Gus', " 
strSQL = strSQL & "'99887766', " 

strSQL = strSQL & "'20-04-1964')" 

' The SQL statement is executed 
Set rs = Conn.Execute(strSQL) 

' Close the database connection 
    rs.Close() 
Set rs = Nothing 
Conn.Close() 
Set Conn = Nothing 

나는이 업데이트 가능한 쿼리를 사용해야합니다 오류를

동작을 얻고있다.

나는 공백이나 뭔가를 놓친합니다 .... 삽입하는 방법 나는 DB에서 읽을 seccuseed 문제가 될 수 있지만 내가 업데이트 할 수 없습니다)

+0

데이터베이스를 호스팅하는 시스템의 국가 별 설정이 DD-MM-YYYY 표기법을 지원합니까? 데이트가 제대로 처리되지 않을까 걱정됩니다. 또한 제트 공급자가 # 또는 ' – xQbert

+0

'을 사용해야하는지 확실하지 않습니다. http://social.msdn.microsoft.com/Forums/en-US/119bb57a-4082-4be8-aaf6-1ce2efd1d02e/insert-do-support-oledbparameter-datetime? forum = adodotnetdataproviders – xQbert

+0

단순히 삽입을 실행할 때 레코드 세트를 만들지 말 것을 제안합니다. 불필요합니다. 객체 할당없이 연결에서 간단하게 실행할 수 있습니다. 그래서 당신의 문장은 Set rs = Conn.Execute (strSQL) 대신에 Conn.Execute strSQL이 될 것입니다. (http://www.w3schools.com/asp/ado_add.asp를보십시오.) 직접적으로 에러를 처리하지 않더라도,이 경우 작동하는 것이 더 좋습니다. – Bret

답변

0

지금 사용 "실행"을 금지 것을. 사용자 ADODB.RecordSet 대신

Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Server.MapPath("dbbb.mdb") 
Set Rs = Server.CreateObject("ADODB.RecordSet") 
Rs.Open "Select Top 1 * From people", Conn,3,3 
    Rs.AddNew 
    Rs("firstName") = 'Cousin' 
    Rs("lastName") = 'Gus' 
    Rs("phone") = '99887766' 
    Rs("lastName") = CDate('20-04-1964') 
    Rs.Update 
    Rs.Close 
Set Rs = Nothing 
Conn.Close 
Set Conn = Nothing 
+0

""Execute "메소드를 사용하여"... 왜 안되나요? 당신의 예제는 2 개의 데이터베이스 쿼리를 필요로합니다. – johna

+0

그래서 어느 것이 사실입니까? 어느 쪽이 맞습니까? – alien

+0

나는 날짜/시간 데이터를 업데이트 할 때 데이터를 업데이트하는 명령을 실행하는 데 좋지 않은 경험이있다. adodb 레코드 세트로 문제가 해결되었습니다. – Firdaus

0

문제는 데이터베이스가 쓰기 권한이 없습니다에있는 폴더가 웹 사이트에서 실행되는 사용자를 사용할 수 있다는 것입니다.

일반적으로 사용자에게 IUSR_ 또는 IUSR 읽기/쓰기 권한을 MDB 파일 또는 폴더에 부여해야합니다. 사용자는 운영 체제/IIS 버전/IIS 설정에 따라 다를 수 있습니다.

귀하가 호스팅 환경에 대해 더 자세히 설명해 주시면 (예 : 로컬 또는 클라이드, IIS 버전, 제어판 액세스 등) 추가로 도움을받을 수 있습니다.

+0

을 참조하십시오. 이전 질문이 어디에 있었습니까? 그래서 내가 이해할 수있는 권한을 가지고 읽을 수 있습니다 :) – alien

+0

기본적으로 데이터베이스 MDB 파일은 읽기 권한 만 갖습니다. 그러나 UPDATE를하려면 WRITE 권한도 필요합니다. 이것은 실제로이 오류 메시지의 가장 큰 문제점입니다. – johna

+0

나는 서버 지원과 이야기하고 그들은 모든 권한을 가지고 있다고 말했다 : ( – alien