logomarca henrique correa nome do site henrique correa
O único lugar no mundo onde o sucesso vem antes do trabalho é no dicionário. - Vidal Sasson

Delphi - Aspas simples dentro de uma string

03 de Junho de 2011

Uma dúvida cruel para desenvolvedores iniciantes em delphi é "Como inserir aspas simples dentro de uma string", já que o delphi utiliza aspas simples para iniciar e terminar strings.

Procurando na internet encontrei várias formas de fazer isso. Para demonstrar vou resolver a seguinte string sql: "IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TABELA' AND COLUMN_NAME = 'COLUNA') BEGIN ALTER TABLE TABELA DROP COLUMN COLUNA END".

Esta função SQL verifica se a coluna "COLUNA" existe na tabela "TABELA". Se existir, eu removo a coluna.

1 - Três aspas simples

Este método é simples porém não aconselho utiliza-lo pois o seu código pode ficar meio embolado.

Ex.: sql := 'IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''TABELA''' AND COLUMN_NAME = '''COLUNA''') BEGIN ALTER TABLE TABELA DROP COLUMN COLUNA END';


2 - Concatenar com Chr(39)

Este método apenas concatena a string com o código ascii da aspas simples.

Ex.: sql := 'IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '+Chr(39)+'TABELA'+Chr(39)+' AND COLUMN_NAME = '+Chr(39)+'COLUNA'+Chr(39)+') BEGIN ALTER TABLE TABELA DROP COLUMN COLUNA END';


3 - Função QuotedStr('string')

Esta função retorna a string desejada dentro de aspas simples. Então você simplesmente concatena sua string à esta função e pronto. Para mim é a forma mais simples de resolver o problema das aspas simples.

Ex.: sql := 'IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '+quotedstr('TABELA')+' AND COLUMN_NAME = '+quotedstr('COLUNA')+') BEGIN ALTER TABLE TABELA DROP COLUMN COLUNA END';


Estas 3 dicas funcionam normalmente mas, como eu avisei, preferi a regra 3 pois o código fica mais legível.

Se você conhece outra maneira ou tem algo a acrescentar à esta matéria, deixe seu comentário abaixo.

Até a próxima dica!

4 Comentários

Vinicius Belisário disse... Valeu, salvou meu dia hoje! Data: 20/12/2011 15:59
Henrique Corrêa disse... Valeu Vinícius,
Também já fui salvo por várias matérias de blog e é por isso mesmo que escrevo!!!
Forte Abraço
Data: 20/12/2011 16:21
Flavio disse... Parabens dicas importantes, e me ajudou muito. Data: 01/02/2012 16:24
Henrique Corrêa disse... Obrigado Flávio,
Espero poder ajudar mais em outras postagens!
Forte Abraço
Data: 01/02/2012 17:40

Deixe seu comentário

Não será exibido

Desejo acompanhar os comentários para este post.

Desejo receber novidades do site.

Redes Sociais

  1. RSS

Parceiros

DFGS Sistemas Permesso Pubblicitá