Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
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

  • Membros Pro
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.

  • Membros Pro
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?

  • Membros Pro
  • 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á 2796 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.

The popup will be closed in 10 segundos...