Fórum Como pesquisar um registo independente se tiver Maiúsculas #291087
08/08/2005
0
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
Curtir tópico
+ 0Posts
08/08/2005
Delphi32
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+!
Gostei + 0
08/08/2005
Ariovaldo
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.
Gostei + 0
08/08/2005
Kotho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)