Alguem pode me explicar o pq do uso do Chr(39)

Delphi

29/02/2004

alguem pode me explicar o uso do:
+Chr(39)+ por exemplo teve um comando SQL que so saiu depois que eu inseri os comando:

sql.Add(´insert into TESTE(NOME) values(´+Chr(39)+EdtNome.text+Chr(39)+´)´);

sem este comando ficava dando um erro estranho ...


Fcnjr

Fcnjr

Curtidas 0

Respostas

Edilcimar

Edilcimar

29/02/2004

a sql é executada entre aspas portanto pode substituir o chr(39) por ´ que funciona pois a mesma é o fechamento da aspa anterior


GOSTEI 0
Fcnjr

Fcnjr

29/02/2004

QUANDO EU FAÇO A TROCA DO chr(39) POR ´ ELE INSERE NO BANCO O VALOR:
+EdtNome.text+

EU DEVO TER COLOCADO ERRADO NAUM É?
VEJA COMO EU FIZ A SUBSTITUIÇÃO:

sql.Add(´insert into TESTE(NOME)

values(´ ´+EdtNome.text+´ ´)´);

ONDE FOI QUE EU ERREI ??


GOSTEI 0
Tnaires

Tnaires

29/02/2004

Olá
Vc tb pode usar, em lugar do Chr(código), #código. Exemplo: substitua Chr(39) por 39 q dá no mesmo, com a vantagem d vc ter maior legibilidade no código.
sql.Add(´insert into TESTE(NOME) 
values(´+ 39 + EdtNome.text+ 39 + ´)´);

Abraços


GOSTEI 0
Adilsond

Adilsond

29/02/2004

O #39 é a aspa simples. Ela é necessária para inclusão de um valor não numérico. Senão o banco achará que se trata do nome de uma coluna, função, ... . Voce pode mudar o código 39 + Edit1.Text + 39 por QuotedStr(Edit1.Text) que terá o mesmo resultado.


GOSTEI 0
Marco Salles

Marco Salles

29/02/2004

O Edicilmar Te Deu a Uma Dica, Mas Acho Que Voce Não Fez Da Maneira Que Ele Sugeriu:

a sql é executada entre aspas portanto pode substituir o chr(39) por ´ que funciona pois a mesma é o fechamento da aspa anterior


Antes:
sql.Add(´insert into TESTE(NOME) 
values(´+ #39 + EdtNome.text+ 39 + ´)´);


Com A Sugestão:
sql.Add(´insert into TESTE(NOME) 
values(´+´ + EdtNome.text +´+ ´)´);


Voce Fez Isto:
VEJA COMO EU FIZ A SUBSTITUIÇÃO: sql.Add(´insert into TESTE(NOME) values(´ ´+EdtNome.text+´ ´)´);


[color=red:35d48a7d7e]Resultado==>>>Insere o ´+EdtNome.Text+´ e Não O Conteudo Do EdtNom.Text[/color:35d48a7d7e]

Agora Quanto a Sua Citação:
alguem pode me explicar o uso do: +Chr(39)+ por exemplo teve um comando SQL que so saiu depois que eu inseri os comando:
..

Acredito Que o Adilson Explicou:
Ela é necessária para inclusão de um valor não numérico. Senão o banco achará que se trata do nome de uma coluna, função, ... .



GOSTEI 0
Ricardopdv

Ricardopdv

29/02/2004

:D Olá pessoal !

Vcs. podem fazer uso de quotedstr que funcionará normalmente

uso: quotedstr(edit1.text)

um abraço


GOSTEI 0
Cebikyn

Cebikyn

29/02/2004

QUANDO EU FAÇO A TROCA DO chr(39) POR ´ ELE INSERE NO BANCO O VALOR: +EdtNome.text+ EU DEVO TER COLOCADO ERRADO NAUM É? VEJA COMO EU FIZ A SUBSTITUIÇÃO: sql.Add(´insert into TESTE(NOME) values(´ ´+EdtNome.text+´ ´)´); ONDE FOI QUE EU ERREI ??


Duas aspas seguidas equivalem a uma única, vc deve por 3 aspas para que funcione corretamente:

sql.Add(´insert into TESTE(NOME) values(´´´+EdtNome.text+´´´)´);



GOSTEI 0
Marco Salles

Marco Salles

29/02/2004

Todas As Respostas Ate Agora Eu Acho Que Estão Corretas... Tudo Começou Porque Voce Queria Saber O Porque Do Char(39) No Seu Cógigo... O Edilcimar Não Respondeu Isto, Mas Te Disse Que Era Para Substituir o Char(39) Pela Aspa Simples ..No Meu Ver Voce Substitui De Forma Errada... E Aí Começaram as Sugestões...Todas a Meu Ver Corretas... Agora Voce Mais Do Que Ninguem Pode Testar Todas e Dizer Para Nós Qual a Que Funcionou e Qual Não Deu Resultado.. oha a Seguir as Opções Que Voce Tem:

Inicial:
sql.Add(´insert into TESTE(NOME) 
values(´+Chr(39)+EdtNome.text+Chr(39)+´)´); 


Edicilmar
sql.Add(´insert into TESTE(NOME) 
values(´+´ + EdtNome.text +´+ ´)´);


A que Voce Fez Que Deu Erro:Inserre Sempre +EdtNomeText+
sql.Add(´insert into TESTE(NOME) 
values(´ ´+EdtNome.text+´ ´)´); 



tnaires
sql.Add(´insert into TESTE(NOME) 
values(´+ #39 + EdtNome.text+ 39 + ´)´);


Adilson e ricardopdv
sql.Add(´insert into TESTE(NOME) 
values(´+QuotedStr(Edit1.Text) + ´)´);


cebikyn
sql.Add(´insert into TESTE(NOME)
values(´´´+EdtNome.text+´´´)´);


Estamos Curiosos :?: :?: :?: :?:


GOSTEI 0
Fcnjr

Fcnjr

29/02/2004

EU COLOQUEI ASPAS DUPLAS:
´ ´ --> SUBSTITUINDO O COMANDO E FICOU BLZ OS OUTROS EU NAO CHEGUEI A TESTAR

VALEU BRIGADÃO !!

FRANCISCO NUNES


GOSTEI 0
Ciro Bizelli

Ciro Bizelli

29/02/2004

Bom dia,

Você pode também colocar da seguinte forma

Conteúdo desejado = 205689'

Na Query para buscar em um campo String

Select *
from table_name
where codigo = '205689'+char(39)

ou


Select *
from table_name
where codigo = '205689' ' ' --- substituindo a Aspas simples por 2 aspas simples antes de fechar a sintaxe

Ambos irão funcionar

Abraços!
GOSTEI 0
POSTAR