From: | Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy> |
---|---|
To: | Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: guardar consulta sql |
Date: | 2008-02-06 13:44:56 |
Message-ID: | 47A9B9D8.3020801@ort.edu.uy |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gabriel Ferro wrote:
> Maestros, probe reemplazar una comilla simple por dos comillas simples
> no me funciona, probe reemplazarla con una comilla doble y anduvo, la
> cosa es:
> 1-andara siempre?
> 2- solo la comilla simple trae problemas?
> Saludos.
>
> ----- Mensaje original ----
> De: Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy>
> Para: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Enviado: miércoles 6 de febrero de 2008, 9:21:35
> Asunto: Re: [pgsql-es-ayuda] guardar consulta sql
>
> Gabriel Ferro wrote:
> > Prociguiendo con el tema del registro de logs de usuarios, quiero
> > guardar en un campo varchar(300) la consulta sql que usa el usuario
> > desde el pragramita en VB, la cosa es que al intentar hacerlo por
> > supuesto me da error ya que esta cadena tiene apostrofes y otras cosas
> > que para postgree descujeringan la cadena...
> > Para aclarles, tengo la funcion
> >
> > CREATE OR REPLACE FUNCTION cargalog(usuario character varying,
> > usuariopc character varying, equipo character varying, ipmaquina
> > character varying, aplica character varying, operacion character
> > varying, cadena character varying, fechahora timestamp without time
> zone)
> > RETURNS boolean AS
> > $BODY$
> > begin
> > execute 'INSERT INTO tablalog (usuario, usuariopc, equipo, ipmaquina,
> > aplica, operacion, cadena, fechahora)
> > VALUES ('''||usuario||''' , '''||usuariopc||''' , '''||equipo||'''
> > , '''||ipmaquina||''' , '''||aplica||''' , '''||operacion||''' ,
> > '''||cadena||''', '''||now()||''');';
> > RETURN true;
> > end;
> >
> > $BODY$
> > LANGUAGE 'plpgsql' VOLATILE;
> >
> > y desde visual la ejecuto asi
> >
> > cnn.Execute ("select cargalog('" &
> > Fsuperquery.txtUserName.Text & "','" & UsuarioActual & "','" _
> > & ComputerName & "','" & RecuperarIP & "','" &
> > aplicacion _
> > & "','" & actividad & "','" & "','" & cadenaSQL &
> > "','" _
> > & Format(date, "dd/mm/yyyy") & " " & Format$(Time,
> > "HH:mm") & "');")
> >
> >
> >
> > el problema es con CADENASQL
> > Si me peuden ayudar como resolver el problemas se los agradecere
> >
> >
> > ------------------------------------------------------------------------
> >
> > Los referentes más importantes en compra/venta de autos se juntaron:
> > Demotores y Yahoo!. Ahora comprar o vender tu auto es más fácil.
> > Visitá http://ar.autos.yahoo.com/
> Hola, en cuanto al campo, hacelo mas grande (varchar(65000)) o un text.
> En cuanto al cadenaSQL, aplicale en vb un replace (<texto>,
> *"*'*"*,*"*''*"*) o sea, a cada comilla simple reemplazala por dos
> simples y luego trabajalo como hasta ahora.
> Disculpen el formnato pero no es facil de visualizar el tema de la
> comillas.
>
> Saludos Fernando
>
>
> ------------------------------------------------------------------------
>
> Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva
> Tarjeta de crédito. De tu PC directo a tu casa.
> Visitá www.tuprimeratarjeta.com.ar
Hola en la BD esto funciona:
Select 'D''andrea D''or Fernando' ;
?column?
-------------------------
D'andrea D'or Fernando
Claro que en vb esto lo tendrias que hacer:
Dim sentencia as string
sentencia ="Select 'D''andrea D''or Fernando' "
o si queres concatenar
dim parte1 as string
dim parte2 as string
dim parte3 as string
parte1="D''andrea "
parte2="D''or "
parte3="Fernando "
sentencia = "Select *'*" & parte1 & parte2 & parte3 & "*'* "
Saludos Fernando
Saludos Fernando
From | Date | Subject | |
---|---|---|---|
Next Message | Alejandro Chen | 2008-02-06 14:23:25 | Re: guardar consulta sql |
Previous Message | Gabriel Ferro | 2008-02-06 13:15:12 | Re: guardar consulta sql |