Fórum Ordenação independente de maiúscula e minúscula #498400
20/10/2014
0
Há solução fácil?
if RadioGroup_Ordenacao.ItemIndex = 0 then
begin
DataModule_01.DataSet_Clientes.Close;
DataModule_01.DataSet_Clientes.SelectSQL.Clear;
DataModule_01.DataSet_Clientes.SelectSQL.Add('select * from clientes ' +texto+ 'order by cli_nome') ;
DataModule_01.DataSet_Clientes.Open;
end;Narba Silva
Curtir tópico
+ 0Posts
22/10/2014
Adilson Júnior
Nunca percebi isso porque sempre forço o usuário a digitar tudo em maiúscula dentro da aplicação!
Uma possível solução é converter tudo para maiúsculas ou então criar uma função que joga a primeira letra de cada palavra do nome para maiúscula antes de gravar no banco
function Tform1.FormataNome(sNome: String): string;
const
excecao: array[0..5] of string = (´ da ´, ´ de ´, ´ do ´, ´ das ´, ´ dos ´, ´ e ´);
var
tamanho, j: integer;
i: byte;
begin
Result := AnsiLowerCase(sNome);
tamanho := Length(Result);
for j := 1 to tamanho do
// Se é a primeira letra ou se o caracter anterior é um espaço
if (j = 1) or ((j>1) and (Result[j-1]=Chr(32))) then
Result[j] := AnsiUpperCase(Result[j])[1];
for i := 0 to Length(excecao)-1 do
result:= StringReplace(result,excecao[i],excecao[i],[rfReplaceAll, rfIgnoreCase]);
end;
Gostei + 0
22/10/2014
Host Solucões
if RadioGroup_Ordenacao.ItemIndex = 0 then
begin
DataModule_01.DataSet_Clientes.Close;
DataModule_01.DataSet_Clientes.SelectSQL.Clear;
DataModule_01.DataSet_Clientes.SelectSQL.Add('select * from clientes ' +texto+ 'order by ' + upper(cli_nome)) ;
DataModule_01.DataSet_Clientes.Open;
end;
Gostei + 0
23/10/2014
Narba Silva
if RadioGroup_Ordenacao.ItemIndex = 0 then
begin
DataModule_01.DataSet_Clientes.Close;
DataModule_01.DataSet_Clientes.SelectSQL.Clear;
DataModule_01.DataSet_Clientes.SelectSQL.Add('select * from clientes ' +texto+ 'order by ' + upper(cli_nome)) ;
DataModule_01.DataSet_Clientes.Open;
end;
Essa tambem nao deu certo
Gostei + 0
23/10/2014
Narba Silva
Gostei + 0
24/10/2014
Raylan Zibel
select upper(cli_nome) from clientes ' + texto + ' order by cli_nome
Gostei + 0
24/10/2014
Narba Silva
select upper(cli_nome) from clientes ' + texto + ' order by cli_nome
[img]http://arquivo.devmedia.com.br/forum/imagem/387399-20141024-152852.png[/img]
Gostei + 0
24/10/2014
Tone Costa.
Nos campos referente a nome, descricao eu crio um campo espelho que grava tudo em maiusculo, sem caracter acentuado e em alguns casos gravo até o fonetico do nome para ficar facil a pesquisa: tipo (casa, caza).
Quando eu faço as consultas eu converte o que o usuario digitou para caixa alta e faço a pesquisa pelo campo
Sei que gasta mais espaço, mas hoje em dia, existe gb de sobra
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)