Para Ignacio Ortiz
Publicado: Sab Nov 01, 2008 5:42 am
Hola Ignacio Que tal !
Como es sabido la comilla sirve para delimitar las Datos String en los
motores SQL.
SQLiteRecords tiene bien implementado el manejo de las comillas simples
' y la diagonal cuando el usuario las teclea en campos tipo
caracter, la funcion StrSql es la encargada de eso.
SQLiteRecords.prg
STATIC FUNCTION ValToStr( x )
SWITCH ValType( x )
CASE 'C'
x := "'" + StrSql( x ) + "'"
EXIT
La Funcion ValToStr() de MySQLRecords.prg carece de la funcion StrSql o
una similar, lo cual deja un hueco para hacer que se produzca un error
como este cuando el usuario teclea una comilla como parte de la inf.
TMYSQLRECORDS:REPLACE(502)
Error MySQL/-1 You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near '25' WHERE tipostarifa.TARIFA_ID= 2' at line 1:
TMYSQLRECORDS:REPLACE
Arguments: ( [ 1] = Type: C Val: UPDATE tipostarifa SET
TARIFA='PROMULGATED 25,50',25' WHERE tipostarifa.TARIFA_ID= 2)
la comilla esta despues del 50' la cual es parte de la inf. tecleada por
el usuario
Que gran hueco!
codigo de MySQLRecords.prg
STATIC FUNCTION ValToStr( x )
SWITCH ValType( x )
CASE 'C'
x := "'" + x + "'"
EXIT
Lo cual no ocurre con SQLiteRecords.prg
Perdón por publicar el codigo , pero quize ser explicito
P.D. Inf. para el foro
http://dev.mysql.com/doc/refman/5.0/es/ ... yntax.html
Saludos....
Martin Del Angel
Dymsa Sistemas
Como es sabido la comilla sirve para delimitar las Datos String en los
motores SQL.
SQLiteRecords tiene bien implementado el manejo de las comillas simples
' y la diagonal cuando el usuario las teclea en campos tipo
caracter, la funcion StrSql es la encargada de eso.
SQLiteRecords.prg
STATIC FUNCTION ValToStr( x )
SWITCH ValType( x )
CASE 'C'
x := "'" + StrSql( x ) + "'"
EXIT
La Funcion ValToStr() de MySQLRecords.prg carece de la funcion StrSql o
una similar, lo cual deja un hueco para hacer que se produzca un error
como este cuando el usuario teclea una comilla como parte de la inf.
TMYSQLRECORDS:REPLACE(502)
Error MySQL/-1 You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near '25' WHERE tipostarifa.TARIFA_ID= 2' at line 1:
TMYSQLRECORDS:REPLACE
Arguments: ( [ 1] = Type: C Val: UPDATE tipostarifa SET
TARIFA='PROMULGATED 25,50',25' WHERE tipostarifa.TARIFA_ID= 2)
la comilla esta despues del 50' la cual es parte de la inf. tecleada por
el usuario
Que gran hueco!
codigo de MySQLRecords.prg
STATIC FUNCTION ValToStr( x )
SWITCH ValType( x )
CASE 'C'
x := "'" + x + "'"
EXIT
Lo cual no ocurre con SQLiteRecords.prg
Perdón por publicar el codigo , pero quize ser explicito
P.D. Inf. para el foro
http://dev.mysql.com/doc/refman/5.0/es/ ... yntax.html
Saludos....
Martin Del Angel
Dymsa Sistemas