GARANTIR DESCONTO

Fórum Como pesquisar um registo independente se tiver Maiúsculas #291087

08/08/2005

0

Olá pessoal,

Como posso fazer um select * from clientes where codigo = ´a´

mas na base dados tanto posso ter codigo em maiusculas ou minisculas?

Existe alguma função para isso? Ou uma que me grave sempre em maiusculas?

Porque se tiver na BD ´aA´ e se procurar por ´aa´ não retorna nada. era que tenho que fazer +- assim
select * from clientes where caps(codigo) = caps(edit1.text)

o caps converte para maiusculas. Não estou perdendo performance ao colocar um função para converter para maisculas?


Porty

Porty

Responder

Posts

08/08/2005

Delphi32

Olha, eu indicaria que você fizesse justamente o que você já está fazendo. Usar a função na consulta. Qual banco de dados vocês está usando? Se for Firebird (e acho que Interbase também) você poderia usar a função UPPER que converte a string para maiúsculas.

Nos meus projetos sempre coloco a propriedade CharCase dos Edits e DBEdits para ecUppercase, assim garanto que só será possível cadastrar em maiúsculas e por isso as minhas consultas não usam essa função.

Agora, se perde performance ao fazer isso eu não tenho certeza absoluta, mas acho que perde sim. Mas a perda é ínfima. Acho que nem influencia muito...

t+!


Responder

Gostei + 0

08/08/2005

Ariovaldo

Se vc estiver usando Firebird ou Interbase Faça o seguinte:

Declare esta função no Banco, ou seja, executa isso na sua interface SQL
[b:1f4b79f347]
DECLARE EXTERNAL FUNCTION LOWER
CSTRING(255) CHARACTER SET WIN1252
RETURNS CSTRING(255) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT ´IB_UDF_lower´ MODULE_NAME ´ib_udf´;[/b:1f4b79f347]

No seu SQL faça o seguinte:

QryTeste.sql.add(´Select *´);
QryTeste.sql.add(´From Tabela´);
QryTeste.sql.add(´Where Lower(SeuCampo) = :SeuCampo´);
QryTeste.Parambyname(´SeuCampo´).asstring := LowerCase(SeuCampo.Text);
QryTeste.Open;

Me parece que não existe uma função Nativa do banco para converter para Maiuscula e sim só para Minuscula portanto com esta função Lower do banco e LowerCase do delphi vc converte tudo para Maiuscula.


Responder

Gostei + 0

08/08/2005

Kotho

Olha... teoricamente falando, quando utiliza-se função para fazer uma pesquisa, esta pesquisa não é feita pelo índice... o que quer dizer, perda de performance... agora, isso vai depender da quantidade de registros que vc possui...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar