Ir para conteúdo

POWERED BY:

Arquivado

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

osantto

Problema - Alteração de Dados no BD.

Recommended Posts

Tenho o seguinte código em uma página ASP...

 

<%@ Language=VBScript CODEPAGE="65001"%>

<!-- #include file="conexaobd.asp" -->

 


<%
Dim cod, listar


cod = request("cod")

Set listar = Server.CreateObject("ADODB.Recordset")
listar.open "Select * from form where 'cod='" & cod, connstring

while
%>

 

 

 

Ele está funcionando normal.... Só que a hora de alterar os dados no BD ele deixa igual a tabela toda com o mesmo registro.... Se existir 10 cadastros todos ficam exatamente do mesmo jeito...

 

Preciso de uma ajuda com certa urgência....

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem sua pergunta. Seja mais especifico, pois você esta usando um SELECT, para alterar geralmente usamos o UPDATE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem sua pergunta. Seja mais especifico, pois você esta usando um SELECT, para alterar geralmente usamos o UPDATE.

Então colega... Essa parte do código é de um sistema de cadastro de pessoas.... esse é essa parte seleciona determinado cliente no banco de dados e altera por exemplo o telefone ou email... coisas assim.... Só que está acontecendo... Na hora de selecionar o cliente ele sempre seleciona o mesmo e se eu altero qualquer dado daquele cliente ele atualiza todos no bd ficando tudo igual.....

 

E o que eu preciso é que altere cada um de forma independente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa instrução SELECT que você postou aqui está errada.

Deveria dar um belo dum erro ao executá-la. No entando você não citou isso, parece-me bem estranho o cenário.

 

Você não está sendo claro na explicação da sua dúvida/problema.

 

Uma dúvida minha:

Suponhamos que tenha 5 usuários cadastrados no sistema.

Eu imagino que eles apareçam numa lista e você seleciona um deles para alteração. Tô certo?

Daí vem a minha dúvida; se você selecionar qualquer um dos 5 sempre mostra os dados de um só deles?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada neste link, pode te clarear algumas coisas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa instrução SELECT que você postou aqui está errada.

Deveria dar um belo dum erro ao executá-la. No entando você não citou isso, parece-me bem estranho o cenário.

 

Você não está sendo claro na explicação da sua dúvida/problema.

 

Uma dúvida minha:

Suponhamos que tenha 5 usuários cadastrados no sistema.

Eu imagino que eles apareçam numa lista e você seleciona um deles para alteração. Tô certo?

Daí vem a minha dúvida; se você selecionar qualquer um dos 5 sempre mostra os dados de um só deles?

 

Essa instrução SELECT que você postou aqui está errada.

Deveria dar um belo dum erro ao executá-la. No entando você não citou isso, parece-me bem estranho o cenário.

 

Você não está sendo claro na explicação da sua dúvida/problema.

 

Uma dúvida minha:

Suponhamos que tenha 5 usuários cadastrados no sistema.

Eu imagino que eles apareçam numa lista e você seleciona um deles para alteração. Tô certo?

Daí vem a minha dúvida; se você selecionar qualquer um dos 5 sempre mostra os dados de um só deles?

Isso mesmo colega.... Sempre mostra o mesmo.... E vamos supor se alterar qualquer dado todos serão alterados ficando tudo igual como se fosse a mesma pessoa... E não dá erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo colega.... Sempre mostra o mesmo.... E vamos supor se alterar qualquer dado todos serão alterados ficando tudo igual como se fosse a mesma pessoa... E não dá erro...

Então eu entendo que primeiro você precisa corrigir o teu select, pra começar a mostrar os dados do usuário correto.

E depois verificar o update.

 

Essa instrução SELECT vc copiou e colou aqui ou escreveu aqui?

Sugestão:

listar.open " SELECT * FROM form WHERE cod = '" & cod & "' ", connstring

Dúvidas importantes:

  • Essa variável "connstring" é realmente o objeto de conexão com o banco? Pois pelo nome parece que é só a string de conexão;
  • O campo "cod" é 'varchar' ou 'integer'?
  • Qual banco de dados você está usando?

Sugestão de boas práticas: pense em utilizar objetos Command para executar as suas instruções SQL; e se possível utilizar procedures.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu entendo que primeiro você precisa corrigir o teu select, pra começar a mostrar os dados do usuário correto.

E depois verificar o update.

 

Essa instrução SELECT vc copiou e colou aqui ou escreveu aqui?

Sugestão:

listar.open " SELECT * FROM form WHERE cod = '" & cod & "' ", connstring

Dúvidas importantes:

  • Essa variável "connstring" é realmente o objeto de conexão com o banco? Pois pelo nome parece que é só a string de conexão;
  • O campo "cod" é 'varchar' ou 'integer'?
  • Qual banco de dados você está usando?

Sugestão de boas práticas: pense em utilizar objetos Command para executar as suas instruções SQL; e se possível utilizar procedures.

Então fiz essa mudança da sugestão deu esse erro na hora de acessar o formulário de edição:

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e07'

[Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério.

 

Respodendo as dúvidas:

 

1. é o nome da variável de conexão dentro da página conexão.asp

2. o grupo cod é autonumeração.

3. o banco de dados é do access .mdb

 

consigo inserir normalmente, fazer buscas... o problema é só na alteração dos dados.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa instrução SELECT que você postou aqui está errada.

Deveria dar um belo dum erro ao executá-la. No entando você não citou isso, parece-me bem estranho o cenário.

g.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um reponse.write na sua string SQL para ver o que esta sendo passada

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

listar.Open " SELECT * FROM form WHERE cod = " & cod, connstring

Colega coloquei essa sua sugestão... Esse erro que deu...

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'cod='.

 

O negócio está difícil...rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

listar.Open " SELECT * FROM form WHERE cod = " & cod, connstring

Colega coloquei essa sua sugestão... Esse erro que deu...

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'cod='.

 

O negócio está difícil...rs

Parece que a variável "cod" tá vazia.

 

Escreve a instrução SQL na tela antes de executar:

Response.Write "<p>SQL: SELECT * FROM form WHERE cod = " & cod & "</p>"

 

Daí você analisa pra ver se está tudo ok com a instrução. Você pode também pegar a instrução e executar direto no Access pra testá-la e ver se está com erro e qual o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que a variável "cod" tá vazia.

 

Escreve a instrução SQL na tela antes de executar:

Response.Write "<p>SQL: SELECT * FROM form WHERE cod = " & cod & "</p>"

 

Daí você analisa pra ver se está tudo ok com a instrução. Você pode também pegar a instrução e executar direto no Access pra testá-la e ver se está com erro e qual o erro.

 

Agora apareceu isso..

 

SQL: SELECT * FROM form WHERE cod =

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Parece que a variável "cod" tá vazia. Isso é um problema, veja porque ela está vazia.

 

Escreve a instrução SQL na tela antes de executar:

Response.Write "<p>SQL: SELECT * FROM form WHERE cod = " & cod & "</p>"

 

Daí você analisa pra ver se está tudo ok com a instrução. Você pode também pegar a instrução e executar direto no Access pra testá-la e ver se está com erro e qual o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Parece que a variável "cod" tá vazia. Isso é um problema, veja porque ela está vazia.

 

Escreve a instrução SQL na tela antes de executar:

Response.Write "<p>SQL: SELECT * FROM form WHERE cod = " & cod & "</p>"

 

Daí você analisa pra ver se está tudo ok com a instrução. Você pode também pegar a instrução e executar direto no Access pra testá-la e ver se está com erro e qual o erro.

 

Agora coloquei assim e retorna tudo em branco....

 

<%

 

DIM mySQL, objRS

mySQL = "SELECT cod FROM form"

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open mySQL, connstring

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser porque este SELECT busca apenas o campo "cod". E a tua página precisa de outros campos (que não estão sendo buscados no SELECT).

 

Deve ser porque este SELECT busca apenas o campo "cod". E a tua página precisa de outros campos (que não estão sendo buscados no SELECT).

Meu formulário tem aproxidamente 40 campos....

 

Colega agradeço sua ajuda.... Vou ver se consigo refazer tudo na parte para editar os dados pq só está faltando essa parte...

 

Valeu pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu formulário tem aproxidamente 40 campos....

 

Colega agradeço sua ajuda.... Vou ver se consigo refazer tudo na parte para editar os dados pq só está faltando essa parte...

 

Valeu pela ajuda.

 

Justamente, deve ser isso, seu formulário precisa de dados de 40 campos da tabela, e você só está recuperando dados de um campo.

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.