Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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...
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?
Dá uma olhada neste link, pode te clarear algumas coisas
>
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...
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:
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 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:
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.....
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.
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.forexconversion.info/g.gif&key=ecdd1f9f2712a88b04278824403142429503ba90f989b0c7b4056e10e1e68f83" alt="g.gif" />
dá um reponse.write na sua string SQL para ver o que esta sendo passada
listar.Open " SELECT * FROM form WHERE cod = " & cod, connstring
>
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
>
>
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.
>
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 =
>
**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.
>
>
**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
%>
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).
Sou novo na comunidade.Gostaria de saber como posso criar um tópico?Não vejo opção no menu.
> 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.
>
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.
Justamente, deve ser isso, seu formulário precisa de dados de 40 campos da tabela, e você só está recuperando dados de um campo.
Teria como vc postar o código com UPDATE ao invés do SELECT...
Teria como vc postar o código com UPDATE ao invés do SELECT...
Teria sim.
Mas você não está com problema na consulta também?
Eu entendi que você precis primeiro arruma a parte onde se escolhe o registro a ser alterado, pois está com problema: qualquer resgistro que escolha está aparecendo sempre o mesmo registro.
Bom, o código de update é algo semelhante ao seguinte (não conheço sua tabela então não vou conseguir fazer tão correto):
Dim sSQL
sSQL = " UPDATE form SET " & _
" CAMPO_1_DO_TIPO_TEXTO = '" & Request.Form("campo1") & "' " & _
" ,CAMPO_2_DO_TIPO_NUMERO = " & Request.Form("campo2") & _
" WHERE " & _
" cod = " & Request.Form("cod")
connstring.Execute(sSQL)
depois dá uma olhadinha naquele link que passei ele mostra o processo de atualização de uma forma bem didática
depois dá uma olhadinha naquele link que passei ele mostra o processo de atualização de uma forma bem didática
Então olhei o link que você passou.... Achei legal, mas do jeito que a minha cuca tá... Vixe... Fritando os miolos, mas agradeço mesmo.... Estou pesquisando....
Sugestão: explique melhor, parte por parte, desde o começo, coloque prints de telas para facilitar de entendermos, trata suas dúvias uma de cada vez.
>
Teria sim.
Mas você não está com problema na consulta também?
Eu entendi que você precis primeiro arruma a parte onde se escolhe o registro a ser alterado, pois está com problema: qualquer resgistro que escolha está aparecendo sempre o mesmo registro.
Bom, o código de update é algo semelhante ao seguinte (não conheço sua tabela então não vou conseguir fazer tão correto):
Dim sSQL
sSQL = " UPDATE form SET " & _
" CAMPO_1_DO_TIPO_TEXTO = '" & Request.Form("campo1") & "' " & _
" ,CAMPO_2_DO_TIPO_NUMERO = " & Request.Form("campo2") & _
" WHERE " & _
" cod = " & Request.Form("cod")
connstring.Execute(sSQL)
Colega coloquei assim o cógido que você enviou alterei no bd para número... E deu esse erro....
Dim sSQL
sSQL = " UPDATE form SET " & _
" nome = '" & Request.Form("nome") & "' " & _
" ,ficha = " & Request.Form("ficha") & _
" WHERE " & _
" cod = " & Request.Form("cod")
connstring.Execute(sSQL)
Microsoft OLE DB Provider for ODBC Drivers erro '80040e14'
[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução UPDATE.
Não entendi muito bem sua pergunta. Seja mais especifico, pois você esta usando um SELECT, para alterar geralmente usamos o UPDATE.