Ir para conteúdo

POWERED BY:

Arquivado

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

ATS#

Request.Form algo de errado?

Recommended Posts

Olá comunidade, preciso de uma ajuda fiz esse codigo mais naum sei se está certo...

 

If Request.Form("preco_unitario") <> RS_Deletar("preco_unitario") Then

comandoSQL = "UPDATE Tabela1 SET preco_unitario = ('" & Request.Form"preco_unitario") & "') WHERE codigo_produto = " & RS_Deletar("codigo_produto") &" AND codigo_pedido = " & Session("codigo_pedido")

 

Quando Request.Form("preco_unitario") for diferente de preco_unitario da Tabela1 entaum fazer um UPDATE pegando o Request.Form("preco_unitario"), e adicionar o valor dos dados no campo preco_unitario o problema e q acho que naum estou usando correto o request.form...como seria isso?

 

Codigo:

<%Set RS_Deletar  = Server.CreateObject("ADODB.Recordset")RS_Deletar.CursorType = adOpenKeysetRS_Deletar.LockType = adLockOptimisticRS_Deletar.Open "SELECT * FROM Tabela1 WHERE codigo_pedido = " & Session("codigo_pedido"), objConnFor i = 1 to (RS_Deletar.recordcount)If Request.Form("preco_unitario") <> RS_Deletar("preco_unitario") ThencomandoSQL = "UPDATE Tabela1 SET total = ('" & Request.Form"preco_unitario") & "') WHERE codigo_produto = " & RS_Deletar("codigo_produto") &" AND codigo_pedido = " & Session("codigo_pedido")objConn.Execute comandoSQLEnd IfNextRS_Deletar.Close%>

Um abraço a todos...

ATS#

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao inves disso Request.Form"preco_unitario") seria assimRequest.Form("preco_unitario")

Compartilhar este post


Link para o post
Compartilhar em outros sites

"UPDATE Tabela1 SET total = '" & Request.Form("preco_unitario") & "' WHERE codigo_produto = " & RS_Deletar("codigo_produto") &" AND codigo_pedido = " & Session("codigo_pedido")muda o UPDATE ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso, o erro está no updateUPDATE Tabela1 SET total = ('" & Request.Form("preco_unitario") & "') WHERE codigo_produto = " & RS_Deletar("codigo_produto") &" AND codigo_pedido = " .......veja tb se sua sessão está passando algum valor como parâmetro...pode ser que ela esteja vazia ou perdendo o seu valor devido o timeout do servidor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa a digitação errada no UPDATE mais o correto esta abaixo mais mesmo assim esta com erro:

 

O erro é "Tipo de dados incompativel na expressao de criteiro"

 

Naum sei mais o que eu faço, olho esse codigo e esta tudo certo...

Queria perguntar uma coisa de vcs, quando pego o "var" ele vem dos dados num formulario, mais os dados e mostrado so uma vez ou quando daum um loop, estou usando for next...acho que ai que esta o erro no uso.

<%Set RS_Adicionar  = Server.CreateObject("ADODB.Recordset")RS_Adicionar.CursorType = adOpenKeysetRS_Adicionar.LockType = adLockOptimisticRS_Adicionar.Open "SELECT * FROM Tabela1 WHERE codigo_pedido = " & Session("codigo_pedido"), objConnFor i = 1 to (RS_Adicionar.recordcount)var = Request.Form("preco_unitario")var2 = RS_Deletar("preco_unitario")var3 = RS_Deletar("codigo_produto")If var <> var2 thencomandoSQL = "UPDATE Tabela1 SET preco_unitario = '" & var & "' WHERE codigo_produto = " & var2 &" AND codigo_pedido = " & Session("codigo_pedido")objConn.Execute comandoSQLEnd IfNextRS_Adicionar.Close%>

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

isto é numerico (codigo_pedido)??

Compartilhar este post


Link para o post
Compartilhar em outros sites

codigo_produto = Numero

preco_unitario = Unidade Monetaria

codigo_pedido = Numero

Sendo que já tirei as aspas mais continua dando erro...

 

Erro de sintaxe na instrução UPDATE!

Codigo Atualizado logo abaixo:

 

<%Set RS_Adicionar  = Server.CreateObject("ADODB.Recordset")RS_Adicionar.CursorType = adOpenKeysetRS_Adicionar.LockType = adLockOptimisticRS_Adicionar.Open "SELECT * FROM Tabela1 WHERE codigo_pedido = " & Session("codigo_pedido"), objConnFor i = 1 to (RS_Adicionar.recordcount)var = Request.Form("preco_unitario")var2 = RS_Adicionar("preco_unitario")var3 = RS_Adicionar("codigo_produto")If var <> var2 thencomandoSQL = "UPDATE Tabela1 SET preco_unitario = " & var & " WHERE codigo_produto = " & var3 &" AND codigo_pedido = " & Session("codigo_pedido")objConn.Execute comandoSQLEnd IfNextRS_Adicionar.Close%>

Sendo que ja consertei o var3 no Update

 

U que será?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara sei que não é o problema mas não é muito certo usaual fazer isso pode dar pau se não tiver nada...For i = 1 to (RS_Adicionar.recordcount)Nexto melhor é WHILE NOT RS_Adicionar.EOFWENDpois não dá pauquanto a seu problema manda printar na tela o UPDATE pra ver se está fazendo exatamente o que deveria...faz assim antes do executeresponse.write comandoSQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo..

Como uso isso em substituicao ao codigo acima...

Devo substituir o For Next pelo WHILE NOT RS_Adicionar.EOF

WEND

É pra ficar assim?

<%Set RS_Adicionar  = Server.CreateObject("ADODB.Recordset")RS_Adicionar.CursorType = adOpenKeysetRS_Adicionar.LockType = adLockOptimisticRS_Adicionar.Open "SELECT * FROM Tabela1 WHERE codigo_pedido = " & Session("codigo_pedido"), objConnWHILE NOT RS_Adicionar.EOFvar = Request.Form("preco_unitario")var2 = RS_Adicionar("preco_unitario")var3 = RS_Adicionar("codigo_produto")If var <> var2 thencomandoSQL = "UPDATE Tabela1 SET preco_unitario = " & var & " WHERE codigo_produto = " & var3 &" AND codigo_pedido = " & Session("codigo_pedido")objConn.Execute comandoSQLEnd IfWENDRS_Adicionar.Close%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é assim mesmo...e quanto a sua sql você imprimiu na tela o que apareceu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo ate funcionou mais quando insiro um produto consigo atualizar a quantidade mais quando insiro o 2º produto, ele naum consegue nem atualizar o 1º nem o 2º . Acho que tem haver com o loop...ou outra coisa que naum sei u q é..

Codigo de erro:

Tantos erros:-2147217900

Descrição:[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução UPDATE.

Fonte:Microsoft OLE DB Provider for ODBC Drivers

 

 

Codigo atualizado:

 

<%on error resume nextSet RS_Adicionar  = Server.CreateObject("ADODB.Recordset")RS_Adicionar.CursorType = adOpenKeysetRS_Adicionar.LockType = adLockOptimisticRS_Adicionar.Open "SELECT * FROM tblRegistrosVendasEntradaPedido_Item WHERE codigo_pedido = " & Session("codigo_pedido"), objConnWHILE NOT RS_Adicionar.EOFvar = Request.Form("quantidade")var2 = RS_Adicionar("quantidade")var3 = RS_Adicionar("codigo_produto")If var <> var2 thencomandoSQL = "UPDATE tblRegistrosVendasEntradaPedido_Item SET quantidade = " & var & " WHERE codigo_produto = " & var3 &" AND codigo_pedido = " & Session("codigo_pedido") &""objConn.Execute comandoSQLelseresponse.write "Nada para atualizar"End IfRS_Adicionar.MoveNextWENDRS_Adicionar.CloseIf err.number <> 0 thenresponse.write "Tantos erros:"&err.number&"<br>"response.write "Descrição:"&err.description&"<br>"response.write "Fonte:"&err.source&"<br>"    End if%>

Um abraço..

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

o UPDATE esta dentro do loop sim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta a instrução assim:

 

UPDATE tblRegistrosVendasEntradaPedido_Item SET quantidade = '" & var & "' WHERE codigo_produto = '" & var3 &"' AND codigo_pedido = '" & Session("codigo_pedido") & "'"

o resto do problema eu não sei pq já tem mtos posts aqui, então estou meio por fora do q tá acontecendo... hehehe

espero q isso ajude...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta a instrução assim:

UPDATE tblRegistrosVendasEntradaPedido_Item SET quantidade = '" & var & "' WHERE codigo_produto = '" & var3 &"' AND codigo_pedido = '" & Session("codigo_pedido") & "'"
o resto do problema eu não sei pq já tem mtos posts aqui, então estou meio por fora do q tá acontecendo... heheheespero q isso ajude...abraços
Ola,Normalmente quando me deparo com algum problema do genero....respiro fundo, conto ate 100, fecho os olhos e....mentira..nao faço nada disso...mas resolvo o problema por partes...1º opto pelo seguinte:UPDATE tblRegistrosVendasEntradaPedido_Item SET quantidade = '10' WHERE codigo_produto = '5' AND codigo_pedido = '20'"Ou seja, insiro valores reais, se isto funcionar começo por substituir os valores pelas respectivas variaveis.Outra coisa, quando estava a colocar este post, verifiquei que tens todos os campos do tipo TEXTO, é mesmo assim???Verifica na base de dados se não terás antes quantidade do tipo NUMERO.Se for assim deverás tirar a aspa simples ( ' ) antes e depois da variavel...Se puder ajudar mais, avisa.Cumprimentos,Rui Costa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo meu problema parece simples mais tow errando em algum lugar fiz o que você me sugeriu e deu certo...so que acho que e o erro esta no loop, onde sera este erro?

 

Codigo:

 

<%on error resume nextSet RS_Adicionar  = Server.CreateObject("ADODB.Recordset")RS_Adicionar.CursorType = adOpenKeysetRS_Adicionar.LockType = adLockOptimisticRS_Adicionar.Open "SELECT * FROM tblRegistrosVendasEntradaPedido_Item WHERE codigo_pedido = " & Session("codigo_pedido"), objConnFor i = 1 to (RS_Adicionar.recordcount)var = Int(Request.Form("quantidade"))var2 = Int(RS_Adicionar("quantidade"))var3 = Int(RS_Adicionar("codigo_produto"))If var <> var2 thencomandoSQL = "UPDATE tblRegistrosVendasEntradaPedido_Item SET quantidade = " & var & " WHERE codigo_produto = " & var3 &" AND codigo_pedido = " & Session("codigo_pedido") &""objConn.Execute comandoSQLelseresponse.write "Nada para atualizar"End IfNextIf err.number <> 0 thenresponse.write "Tantos erros:"&err.number&"<br>"response.write "Descrição:"&err.description&"<br>"response.write "Fonte:"&err.source&"<br>"    End ifRS_Adicionar.Close%>
Atualiza o primeiro registro mais o segundo e ja da erro...o problema e do loop..

 

Erro:

Nada para atualizarNada para atualizarTantos erros:13

Descrição:Tipos incompatíveis

Fonte:Erro de tempo de execução do Microsoft VBScript

 

Agradeço sua ajuda...

Lembrando que os dados quantidade, codigo_produto, codigo_pedido saum do tipo Numero e banco de dados ACCESS

 

T+

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.