Sei que uma das soluções é usar DOIS apóstrofes ou usar o escape \'
Como os colegas tratam esse detalhe ?
Nada que um StrTran não resolva mas ...
SGBD: MariaDB
Lib: HMG 3.4.4

Moderador: Moderadores
cSql += StringSql( cTexto ) // ValueSql()
...
cCampo := Rs:StringSql( "CAMPO" )
cnMySql:QueryCreate()
cnMySql:QueryAdd( "campo", valor )
cnMySql:QueryAdd( "campo", valor)
cnMySql:QueryExecuteUpdate( "clientes", "CODIGO=" + NumberSql( nCodigo ) )
LOCAL cSql := "INSERT INTO "+ ::cTabela +"( " +;
"usuario, senha, nome, ativo, nivel, imagem, ultimologin ) "+;
"VALUES ( " +;
"'" + ::usuario +"', "+;
"'" + ::senha +"', "+;
"'" + ::nome +"', "+;
" " + ALLTRIM(STR(::ativo)) +" , "+;
" " + ALLTRIM(STR(::nivel)) +" , "+;
"'" + ::imagem +"', "+;
"'" + ::ultimologin +"' " ;
LOCAL cSql := "INSERT INTO "+ ::cTabela +"( " +;
"usuario, senha, nome, ativo, nivel, imagem, ultimologin ) "+;
"VALUES ( " + ;
StringSql( ::usuario ) + "," + ;
StringSql( ::senha ) + "," + ;
StringSql( ::nome ) + "," + ;
NumberSql( ::Ativo ) + "," + ;
NumberSql( ::nivel ) + "," + ;
StringSql( ::Imagem ) + "," + ;
StringSql( ::UltimoLogin ) + " )"
FUNCTION StringSql( xValue )
xValue := StrTran( xValue, ['], [\']
RETURN ['] + xValue + [']
FUNCTION NumberSql( xValue )
RETURN AllTrim( Str( xValue ) )
FUNCTION ValueSql( xValue )
DO CASE
CASE ValType( xValue ) == "C"; RETURN StringSql( xValue )
CASE ValType( xValue ) == "N"; RETURN NumberSql( xValue )
CASE ValType( xValue ) == "D"; RETURN DateSql( xValue )
ENDCASE
// tipo nao tratado
RETURN xValue
FUNCTION StringSql( xValue )
xValue := StrTran( xValue, ['], [\']
RETURN ['] + xValue + [']
FUNCTION NumberSql( xValue )
RETURN AllTrim( Str( xValue ) )
Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes