INSERIR DADOS NO BANCO FUNCIONAR APENAS UMA VEZ
Olá ,
Pode auxiliar ,
Tenho este codigo para inserir dados só que funciona apenas uma vez , depois apresenta erro não especificado na linha de abrir conxão com o banco .
Dim con
Dim rst
Const adOpenKeyset = 1
Const adLockOptimistic = 3
[ô] Cria os objetos
Set con = Server.CreateObject([Ô]ADODB.Connection[Ô])
Set rst = Server.CreateObject([Ô]ADODB.Recordset[Ô])
[ô] Abre a conexão com o banco de dados agenda.mdb
con.Open [Ô]DBQ=C:\Inetpub\wwwroot\bd\LOCADORA.mdb;DRIVER={Microsoft Access Driver (*.mdb)}[Ô]
[ô] Cria um Recordset do tipo keyset baseado na tabela clientes
[ô] usando o bloqueio otimista
rst.Open [Ô]SELECT * FROM TBL_EVENTOS[Ô], con, adOpenKeyset, adLockOptimistic
[ô] Cria um registro em branco
rst.AddNew
[ô] Recebe os dados do formulário e os atribui aos campos da tabela cliente
rst([Ô]EVENTO[Ô])= Request.Form([Ô]txt_evento[Ô])
rst([Ô]DATA[Ô])= Request.Form([Ô]txt_data[Ô])
rst([Ô]ENVOLVIDO[Ô])= Request.Form([Ô]txt_envolvido[Ô])
rst([Ô]DESCRICAO[Ô])= Request.Form([Ô]txt_descricao[Ô])
[ô] Salva o registro
rst.Update
Response.Write [Ô]<B>Registro salvo com sucesso !</B>[Ô]
rst.Close
con.Close
Set con = Nothing
Set rst = Nothing
Pode auxiliar ,
Tenho este codigo para inserir dados só que funciona apenas uma vez , depois apresenta erro não especificado na linha de abrir conxão com o banco .
Dim con
Dim rst
Const adOpenKeyset = 1
Const adLockOptimistic = 3
[ô] Cria os objetos
Set con = Server.CreateObject([Ô]ADODB.Connection[Ô])
Set rst = Server.CreateObject([Ô]ADODB.Recordset[Ô])
[ô] Abre a conexão com o banco de dados agenda.mdb
con.Open [Ô]DBQ=C:\Inetpub\wwwroot\bd\LOCADORA.mdb;DRIVER={Microsoft Access Driver (*.mdb)}[Ô]
[ô] Cria um Recordset do tipo keyset baseado na tabela clientes
[ô] usando o bloqueio otimista
rst.Open [Ô]SELECT * FROM TBL_EVENTOS[Ô], con, adOpenKeyset, adLockOptimistic
[ô] Cria um registro em branco
rst.AddNew
[ô] Recebe os dados do formulário e os atribui aos campos da tabela cliente
rst([Ô]EVENTO[Ô])= Request.Form([Ô]txt_evento[Ô])
rst([Ô]DATA[Ô])= Request.Form([Ô]txt_data[Ô])
rst([Ô]ENVOLVIDO[Ô])= Request.Form([Ô]txt_envolvido[Ô])
rst([Ô]DESCRICAO[Ô])= Request.Form([Ô]txt_descricao[Ô])
[ô] Salva o registro
rst.Update
Response.Write [Ô]<B>Registro salvo com sucesso !</B>[Ô]
rst.Close
con.Close
Set con = Nothing
Set rst = Nothing
A pouca coisa que detectei foi você ter enviado o Response ANTES de encerrar as conexões.
Mas deve ser interessante se não utilizar o Recordset (menos peso) e substituir a ODBC pela OleDb.
Também aproveitando, substituir o Server.CreateObject por um simples CreateObject, pois á partir da versão 5 do IIS, o Server.CreateObject [Ô]amarra[Ô] um ponteiro da instância criada á sessão ativa, ao enviar uma notificação á biblioteca [Ô]Urlmon. dll[Ô].
Já o método [Ô]CreateObject[Ô] é oriundo do VBScript, ou seja, não utiliza a MTS, funcionando bem até sob firewall.
Para mais detalhes sobre esse assunto, veja com a Microsoft
Mas vamos voltar ao seu problema, que é apenas o de ter enviado a resposta antes de encerrar as conexões.
Tente assim:
Isto deve ajudar, quem sabe até resolver.
Mas deve ser interessante se não utilizar o Recordset (menos peso) e substituir a ODBC pela OleDb.
Também aproveitando, substituir o Server.CreateObject por um simples CreateObject, pois á partir da versão 5 do IIS, o Server.CreateObject [Ô]amarra[Ô] um ponteiro da instância criada á sessão ativa, ao enviar uma notificação á biblioteca [Ô]Urlmon. dll[Ô].
Já o método [Ô]CreateObject[Ô] é oriundo do VBScript, ou seja, não utiliza a MTS, funcionando bem até sob firewall.
Para mais detalhes sobre esse assunto, veja com a Microsoft
Mas vamos voltar ao seu problema, que é apenas o de ter enviado a resposta antes de encerrar as conexões.
Tente assim:
[ô]...
[ô] Cria o conector
Dim con
Const adOpenKeyset = 1
Const adLockOptimistic = 3
[ô] Conexão via OleDb.
Const cs = [Ô]Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\Inetpub\wwwroot\bd\LOCADORA.mdb;User ID=Admin;Password=;[Ô]
[ô] Cria a instância do conector.
Set con = CreateObject([Ô]ADODB.Connection[Ô])
[ô] Estabelece a conexão.
con.Open cs
[ô] Executa a instrução SQL.
con.Execute [Ô]INSERT INTO TBL_EVENTOS (EVENTO,DATA,ENVOLVIDO,DESCRICAO) VALUES ([ô] & Request.Form([Ô]txt_evento[Ô]) & [ô],[ô] & Request.Form([Ô]txt_data[Ô]) & [ô],[ô] & Request.Form([Ô]txt_envolvido[Ô]) & [ô],[ô] & Request.Form([Ô]txt_descricao[Ô]) & [ô])[Ô]
[ô] Encerra a conexão.
con.Close
[ô]Agora sim, envia o Response ao Request do form.
Response.Write [Ô]<B>Registro salvo com sucesso !</B>[Ô]
[ô]...
Isto deve ajudar, quem sabe até resolver.
Tópico encerrado , respostas não são mais permitidas