Ir para conteúdo

POWERED BY:

Arquivado

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

camilax

Problema com Conn.execute CARACTER ESPECIAL

Recommended Posts

Olá

 

 

estou com problemas na programação asp com o comando Conn.execute.

 

Montei o seguinte update dentro de uma variavel, que fica:

 

update procedimento set laudo_descricao = 'ACENTOS%%%%ÁÁÁÁÁÁÁÁÁÁ´´AA', id_laudo = "&id_laudo&" where id_ficha_procedimento = "&id_ficha_procedimento&"

 

 

Imprimindo esta variavel na tela, o comando fica:

 

update procedimento set laudo_descricao = 'ACENTOS%%%%ÁÁÁÁÁÁÁÁÁÁ´´AA', id_laudo = 5 where id_ficha_procedimento = 10

 

 

Se executo este comando diretamente no banco de dados, os acentos gravam corretamente.

 

Mas, se executo pelo ASP (conn.execute) os acentos não gravam,

 

já pus Response.charset e a tag meta html com utf-8 e nao funciona.Tambem pus já com o ISO-8859-1 e nao funciona os acentos no conn.execute. Imprimindo o comando update na tela, os acentos aparecem normal, o problema esta no conn.execute

 

 

Alguem tem alguma ideia?

 

 

 

Obrigada!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o code para ver como ele esta, e olha este função que faz a busca com acento e sem acento

 

 

busca=split(request("palavra"),chr(32))
dim onde
for x = 0 to Ubound(busca)
 if x > 0 then
    onde=onde + " and "
 end if
 pesq=busca(x)
 pesq = UCASE(pesq) 'Converte para maiúsculas
 pesq = replace(pesq,"a","[a,á,à,ã,â,ä,A]")
 pesq = replace(pesq,"e","[e,é,è,ê,ë,E]")
 pesq = replace(pesq,"i","[i,í,ì,î,ï,I]")
 pesq = replace(pesq,"o","[o,ó,ò,õ,ô,ö,O]")
 pesq = replace(pesq,"u","[u,ú,ù,û,ü,U]")
 pesq = replace(pesq,"c","[c,ç]")
 onde=onde+"UCASE(texto) like '%" & pesq & "%'"
next

sql = "select * from texto where " & onde


Ele pega os dados que recebeu via request.form (ou querystring) e procura pelo espaço (chr(32)), armazenando cada um no array busca

busca=split(request("palavra"),chr(32))

Faz um loop para percorrer todos os elementos do array busca

for x = 0 to Ubound(busca)

Converte para maiúsculas (para que não haja diferença entre maiúscula e minúsculas) e dá um replace nos acentos

pesq = UCASE(pesq) 'Converte para maiúsculas
 pesq = replace(pesq,"a","[a,á,à,ã,â,ä,A]")
 pesq = replace(pesq,"e","[e,é,è,ê,ë,E]")
 pesq = replace(pesq,"i","[i,í,ì,î,ï,I]")
 pesq = replace(pesq,"o","[o,ó,ò,õ,ô,ö,O]")
 pesq = replace(pesq,"u","[u,ú,ù,û,ü,U]")
 pesq = replace(pesq,"c","[c,ç]")

Monta a próxima instrução SQL

onde=onde+"UCASE(texto) like '%" & pesq & "%'"

Continua o loop e depois faz a busca com as instruções que foram geradas

next

sql = "select * from texto where " & onde

Compartilhar este post


Link para o post
Compartilhar em outros sites
<!--#include file="conexao.asp"-->
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
</HEAD>
<%
Response.Charset="UTF-8" 
laudo_descricao 		= request("laudo_descricao")
id_ficha_procedimento		= request("id_ficha_procedimento")
id_laudo			= request("id_laudo")

response.write(laudo_descricao) 'Aqui os caracteres especiais mostram


cComando1 = "update procedimento set laudo_descricao = 'ACENTOS%%%%ÁÁÁÁÁÁÁÁÁÁ´´AA', id_laudo = "&id_laudo&" where id_ficha_procedimento = "&id_ficha_procedimento&""

Response.write cComando1 'Aqui os caracteres especiais mostram

set rsquery1 = conn.Execute(cComando1)

'Depois de executar o set, os caracteres especiais ficam errados

%>

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.