Ir para conteúdo

POWERED BY:

Arquivado

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

Obr_Sandro

UPDATE simples

Recommended Posts

Por Favor preciso de um HELP.

 

O UPDATE abaixo não esta gravando nem por decreto no banco, ou esta gravando valor em branco, onde esta o erro?

 

Link para rodar o UPDATE e verificar o Response.Write SQLString

http://www.igtvantagens.com.br/retorno.asp?id_transacao=14049283&Free=

 

Código da página

 

  	Response.Expires = 0

Set DatabaseConnection = Server.CreateObject("ADODB.Connection") 
DatabaseConnection.Open  Get_ConexaoDados
Set UserRecordset = Server.CreateObject("ADODB.Recordset")




  		SQLString = "UPDATE cad_associado set "
  		SQLString = SQLString & "PGTO = '" & Nome & "' "
	SQLString = SQLString & "Where ID = " & Pedido
   	        Response.Write SQLString
   	        UserRecordset.Open SQLString, DatabaseConnection






Response.End()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou passar o codigo inteiro da pagina para entender melhor, e NOME eh a variável, e não passa nenhuma mensagem de erro, só clicarem no link acima que eu coloquei eh onde executa o UPDATE.

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/dados1.asp" -->
<!--#include file="conexoes.asp" -->
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_dados1_STRING
Recordset1.Source = "SELECT * FROM cad_associado"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<%
'***********************************************'
' ETAPA 2 '
'***********************************************'
' obtendo a variável id_transação que será '
' recebida por post na etapa 2 '
id_transacao = Request.QueryString("id_transacao")
'***********************************************'
' ETAPA 3'
'***********************************************'
' fixando os dados para obter retorno '
cod_loja = "???" ' Código da Loja
chave = "???" ' Chave de acesso
urlapf = "https://www.pagamentodigital.com.br/admin/recebe_dados.php" 
'URLPADRÃO DO PAGAMENTODIGITAL
' gerando dados do POST para obter retorno '
parametros = urlapf & "?" &_
"id_transacao=" & id_transacao &"&" &_
"cod_loja=" & cod_loja &"&" &_
"chave=" & chave
' ENVIANDO POST PARA RECEBER DADOS DO PEDIDO '
Set obj = Server.CreateObject("MSXML2.ServerXMLHTTP")
obj.open "POST", parametros, False
obj.send
resposta = obj.responseText ' VARIÁVEL ret RECUPERA STRING DE RETORNO
Set obj = Nothing
'***********************************************'
' TRATAMENTO DA STRING DE RETORNO'
'***********************************************'
Aux = Split(resposta,"<BR>")
If Ubound(Aux)<3 then
Response.Write "Erro: " & vbcrlf
Response.Write Replace(Aux(1),"Msg:","") & vbcrlf
Response.End()
End If
'***********************************************'
' OBTENDO AS VARIÁVEIS COM DADOS DO RETORNO'
'***********************************************'
Consulta = Replace(Aux(0),"consulta: ","")
IdTransacao = Replace(Aux(1),"idtransacao:","")
Pedido = Replace(Aux(2),"pedido:","")
Situacao = Replace(Aux(3),"status:","")
VrReceber = Replace(Aux(4),"vrreceber:","")
DtCredito = Replace(Aux(5),"dtcredito:","")
FormaPag = Replace(Aux(6),"formapag:","")
TpPag = Replace(Aux(7),"TpPag:","")
Envio = Replace(Aux(8),"envio:","")
Nome = Replace(Aux(9),"nome:","")
Endereco = Replace(Aux(10),"endereco:","")
Bairro = Replace(Aux(11),"bairro:","")
Cidade = Replace(Aux(12),"cidade:","")
Estado = Replace(Aux(13),"estado:","")
Cep = Replace(Aux(14),"cep:","")
chave = Replace(Aux(15),"chave:","")
Free = Replace(Aux(16),"free:","")
'Utilize as variaveis acima para incluir no banco de dados e atualizar o pedido em sua loja virtual



  	Response.Expires = 0

Set DatabaseConnection = Server.CreateObject("ADODB.Connection") 
DatabaseConnection.Open  Get_ConexaoDados
Set UserRecordset = Server.CreateObject("ADODB.Recordset")




  		SQLString = "UPDATE cad_associado set "
  		SQLString = SQLString & "PGTO = '" & Nome & "' "
	SQLString = SQLString & "Where ID = " & Pedido
   	Response.Write SQLString
   	UserRecordset.Open SQLString, DatabaseConnection






Response.End()



%>

<%
Recordset1.Close()
Set Recordset1 = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique as permissões administrativas no arquivo de banco de dados, veja também o que esta sendo passado Pedido e se esta no formato correto no banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

As permissões estão OK, pois este banco ja recebe outras gravações, estou passando a variavel (NOME) que eh uma string de texto e o banco esta certinho, algum erro no código de SQL acima? uma virgula mal colocada sei la?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então velho..

Posso até esta errado mais você ta mandando abrir.

Tenta com DatabaseConnection.Execute(SQLString) no lugar do .open pra ve se vai..

 

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano, mudei para EXECUTE deu esse erro:

 

UPDATE cad_associado set PGTO = ' SK Brindes' Where ID = 30

 

Provider error '80020005'

 

Type mismatch.

 

/igt/retorno.asp, line 90

 

liha 90 = DatabaseConnection.Execute(SQLString), DatabaseConnection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano, mudei para EXECUTE deu esse erro:

 

UPDATE cad_associado set PGTO = ' SK Brindes' Where ID = 30

 

Provider error '80020005'

 

Type mismatch.

 

/igt/retorno.asp, line 90

 

liha 90 = DatabaseConnection.Execute(SQLString), DatabaseConnection

 

Tenta com UserRecordset.Execute(SQLString), sem o DatabaseConnection.

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que droga não apresenta mais o erro, porém continua sem realizar o UPDATE não sei mais o que pensar ja que o Response.Write SQLString mostra que esta com a variavel ...

 

Acabei de fazer um teste e coloquei manualmente qualquer valor nesse campo da tabela, o UPDATE esta sendo feito sim porem VAZIO.

 

Acabei de fazer um teste e coloquei manualmente qualquer valor nesse campo da tabela, o UPDATE esta sendo feito sim porem VAZIO. Ele apaga o valor que eu coloquei manualmente e deixa VAZIO, exatamente no registro indicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o trecho de código esta correto, UserRecordset.Open SQLString, DatabaseConnection

pois esta usando o método Open do Objeto recordset, que na verdade é melhor que usar o método execute do objeto Connection

apenas adicione o bloqueio do cursor e tipo do cursor

coloque assim

 

UserRecordset.Open SQLString, DatabaseConnection,1,3

 

e veja o que acontece

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo continua Gravando em branco, o UPDATE esta sendo feito corretamente seja com execute, seja com Open, a m***** esta na variavel que esta entrando em branco, se eu preencho o campo do DB manualmente com qualquer valor, após o UPDATE ele fica zerado, sera por conta disso no codigo em cima ** Nome = Replace(Aux(9),"nome:","")**

)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo xanburzum eu acho que a sua DICA funcionou viu, eu não estava vendo o resultado porque sempre baixava o DB que esta em ACCES e procurava manualmente sempre vendo o campo estava vazio, porém visualizando o resultado em front-end o campo foi preechido sim veja nesse link: http://www.igtvantagens.com.br/igt/list_logistas2.asp?ativo=1&Submit=Escolher

veja o UPDATE acima foi feito no ultimo registro (LG), porém o que esta acontecendo é que as variáveis estão vindo com caracteres inválidos veja: (Transa? em Andamento) talvez por isso não apareçam no DB quando baixo e visualizo ele.

Ultima ajuda, como concerto esses caracteres especiais, o código da página esta acima nos posts. Valew pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

 

ou com ISO-8859-1

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"

Response.Charset="ISO-8859-1" %>

 

Response.CharSet = "ISO-8859-1". No cabeçalho do site coloquei a meta tag <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />,

 

e para UTF-8

 

Mudar o head da página que solicita os dados para que ele fique assim

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

 

Na página que responde os dados colocar isso antes do retorno co conteúdo (logo no topo):

<%

Response.AddHeader "Content-Type", "text/html; charset=utf-8"

Response.AddHeader "Pragma", "no-cache"

response.Charset="utf-8"

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola parceiro acabei não conseguindo entender qual codigo coloco em qual pagina? Só tenho duas paginas nesse processo: a primeira que o conteudo esta todo no meu primeiro POST que recebe os dados do PAGDIGITAL e grava no meu DB, e a segunda que apenas me mostra os dados que foram gravados: http://www.igtvantagens.com.br/igt/list_logistas2.asp?ativo=1&Submit=Escolher. A segunda parece estar funcionando bem quanto a codificacao, veja os registros acima do (LG) que aparecem com çedilha normal. Entnao o problema seria na primeira que eu postei todo conteudo.

 

Colocando a sua dica ja apresentou um erro veja: http://www.igtvantagens.com.br/retorno.asp?id_transacao=14049283&Free=

 

Depis das dicas aqui o codigo atual da pagina esta asim:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>

<%  
response.Charset = "ISO-8859-1" 
	response.ContentType = "text/html" 

%> 


<!--#include file="../Connections/dados1.asp" -->
<!--#include file="conexoes.asp" -->
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_dados1_STRING
Recordset1.Source = "SELECT * FROM cad_associado"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<%
'***********************************************'
' ETAPA 2 '
'***********************************************'
' obtendo a variável id_transação que será '
' recebida por post na etapa 2 '
id_transacao = Request.QueryString("id_transacao")
'***********************************************'
' ETAPA 3'
'***********************************************'
' fixando os dados para obter retorno '
cod_loja = "549619" ' Código da Loja
chave = "9951B373337934E124CC5C87961D9263" ' Chave de acesso
urlapf = "https://www.pagamentodigital.com.br/admin/recebe_dados.php" 
'URLPADRÃO DO PAGAMENTODIGITAL
' gerando dados do POST para obter retorno '
parametros = urlapf & "?" &_
"id_transacao=" & id_transacao &"&" &_
"cod_loja=" & cod_loja &"&" &_
"chave=" & chave
' ENVIANDO POST PARA RECEBER DADOS DO PEDIDO '
Set obj = Server.CreateObject("MSXML2.ServerXMLHTTP")
obj.open "POST", parametros, False
obj.send
resposta = obj.responseText ' VARIÁVEL ret RECUPERA STRING DE RETORNO
Set obj = Nothing
'***********************************************'
' TRATAMENTO DA STRING DE RETORNO'
'***********************************************'
Aux = Split(resposta,"<BR>")
If Ubound(Aux)<3 then
Response.Write "Erro: " & vbcrlf
Response.Write Replace(Aux(1),"Msg:","") & vbcrlf
Response.End()
End If
'***********************************************'
' OBTENDO AS VARIÁVEIS COM DADOS DO RETORNO'
'***********************************************'
Consulta = Replace(Aux(0),"consulta: ","")
IdTransacao = Replace(Aux(1),"idtransacao:","")
Pedido = Replace(Aux(2),"pedido:","")
Situacao = Replace(Aux(3),"status:","")
VrReceber = Replace(Aux(4),"vrreceber:","")
DtCredito = Replace(Aux(5),"dtcredito:","")
FormaPag = Replace(Aux(6),"formapag:","")
TpPag = Replace(Aux(7),"TpPag:","")
Envio = Replace(Aux(8),"envio:","")
Nome = Replace(Aux(9),"nome:","")
Endereco = Replace(Aux(10),"endereco:","")
Bairro = Replace(Aux(11),"bairro:","")
Cidade = Replace(Aux(12),"cidade:","")
Estado = Replace(Aux(13),"estado:","")
Cep = Replace(Aux(14),"cep:","")
chave = Replace(Aux(15),"chave:","")
Free = Replace(Aux(16),"free:","")
'Utilize as variaveis acima para incluir no banco de dados e atualizar o pedido em sua loja virtual



  	Response.Expires = 0

Set DatabaseConnection = Server.CreateObject("ADODB.Connection") 
DatabaseConnection.Open  Get_ConexaoDados
Set UserRecordset = Server.CreateObject("ADODB.Recordset")




  		SQLString = "UPDATE cad_associado set "
  		SQLString = SQLString & "PGTO = '" & Situacao & "' "
	SQLString = SQLString & "Where ID = " & Pedido
   	Response.Write SQLString
   	UserRecordset.Open SQLString, DatabaseConnection,1,3

	SQLString = "UPDATE cad_logista set "
  		SQLString = SQLString & "PGTO = '" & Situacao & "' "
	SQLString = SQLString & "Where ID = " & Pedido
   	Response.Write SQLString
   	UserRecordset.Open SQLString, DatabaseConnection,1,3






Response.End()



%>

<%
Recordset1.Close()
Set Recordset1 = Nothing
%>

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.