Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 3331 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membro Pro Verificado
Postado

Olá a todos,

Eu possuo uma ZQuery com um ZUpdateSQL, especificamente para gravar arquivos XMLs em uma tabela MySQL.

Mas na verdade eu queria fazer direto com um comando "UPDATE TABELA SET" sem o uso do ZUpdateSQL, o problema é que tenho receio de surgirem caracteres especiais no XML, como apostrofos por exemplo que o MySQL não reconhece sem a barra invertida antes. Gravando pela ZQuery com o auxilio do ZUpdateSQL eu não tenho problemas, o componente trata isso automaticamente.

Alguma dica para que eu possa fazer isso direto (sem o ZUpdateSQL) escapando os caracteres especiais?

Desde já agradeço a atenção de todos

  • Membro Pro Verificado
Postado

Um detalhe, quando programava em PHP usava para isso a função mysql_escape da própria linguagem. Se tivesse algo igual para o Delphi seria perfeito.

  • Membro Pro Verificado
Postado
1 hora atrás, BigWings disse:

Não uso muito o MySQL, mas para a questão dos apóstrofos você pode usar a QuotedStr().

Ok, mas basicamente todas as linguagens de banco de dados possuem caracteres especiais, como a SQL por exemplo.

Na que você utiliza também deve ter. Como trata esse tipo de "necessidade" em seus códigos?

  • Membro Pro Verificado
  • Solution
Postado (editado)

Nossa... na verdade é muito simples, que pena que demorei tanto tempo para achar a resposta.

Basta usar parâmetros e deixar o componente cuidar do resto.

dtm_banco.z_formulas.SQL.Text := 'UPDATE TBL_NFCEVENDAS SET xml = :xml WHERE id_nfcevendas = :id';
dtm_banco.z_formulas.ParamByName('xml').AsString := mem_xml.Text;
dtm_banco.z_formulas.ParamByName('id').AsString := IntToStr(id);
dtm_banco.z_formulas.ExecSQL;

No ZUpdateSQL aparentemente se usa parâmetros também, só nunca soube como codificar, mas pelo visto é assim já que funcionou.

Abraços a todos

Editado por doidopb
  • Este tópico foi criado há 3331 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.