Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabio Mazzi

locktype travando atualizacao

Recommended Posts

Pessoal é o seguinte, eu tenho o uma pagina com o seguinte codigo:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="../Connections/conexao.asp" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>teste</title>
</head>
<body>
<%
call abre_conexao
Dim teste
Dim teste_numRows
Set teste = Server.CreateObject("ADODB.Recordset")
teste.ActiveConnection = conexao
teste.Source = "SELECT * FROM teste"
teste.CursorType = 0
teste.CursorLocation = 2
teste.LockType = 3
teste.Open()
teste_numRows = 0
while not teste.eof
	response.write "nome: "&teste("nome")&"<br>"
	teste.movenext
wend
teste.AddNew
teste("nome")="teste"
teste.Update
teste.movefirst
response.write "<p>novo<br>"
while not teste.eof
	response.write "nome: "&teste("nome")&"<br>"
	teste.movenext
wend
teste.close
Set teste = nothing
call fecha_conexao
%>
</body>
</html>

neste codigo eu lista a tabela teste do meu banco de dados que tem um campo nome, e logo em seguida eu adiciono mais um nome e peço para listar novamente, ate ai tudo bem, porem se eu trocar as seguintes linhas:

Dim teste
Dim teste_numRows
Set teste = Server.CreateObject("ADODB.Recordset")
teste.ActiveConnection = conexao
teste.Source = "SELECT * FROM teste"
teste.CursorType = 0
teste.CursorLocation = 2
teste.LockType = 3
teste.Open()
teste_numRows = 0

pelas linhas:

sql = "SELECT * FROM teste"
set teste = conexao.execute(sql)

eu consigo listar os registros, porém ao tentar adicionar um novo registro me exibe a mensagem:

ADODB.Recordset error '800a0cb3'

 

Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

 

/maisenvio/home/_teste.asp, line 32

 

sendo a linha 32 o comando: teste.AddNew

 

Alguem poderia me ajudar????

 

 

o arquivo conexao.asp tem o seguinte conteudo:

<%
session("path_banco") = "e:\sites\teste\dados\bd_teste.mdb"
dim conexao
sub abre_conexao
	set conexao = CreateObject("ADODB.Connection")
	Conexao.Open "DBQ="&session("path_banco")&";Driver={Microsoft Access Driver (*.mdb)}"
end sub
'----------------------------------------------------------------------------------------------------------------------------
sub fecha_conexao
	 Conexao.close
	 Set Conexao = nothing
end sub
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & session("path_banco") & ";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tb pode usar as seguinte sintaxe

rs.open source, activeConnection, cursortype, locktype, options

 

<% call abreconexao
			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM login ORDER BY login"
  rs.open SQL,conexao,1,3
   %>

Set teste = Server.CreateObject("ADODB.Recordset")
teste.ActiveConnection = conexao
teste.Source = "SELECT * FROM teste"
teste.CursorType = 1
teste.CursorLocation = 2
teste.LockType = 3
teste.Open()

e se estiver usando o Access 2007 use a seguinte constring

 

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.