 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Qua Out 03, 2018 12:10 am Assunto: [RESOLVIDO]Ordenando incorretamente erro |
|
|
Olá Pessoal,
Eu estou tentando ordenar no Delphi por Cidade e depois por nome, porém essa cidade é chave estrangeira, e o delphi não consegue ordenar corretamente. eu testei para ver se era problema com meu código e coloquei no IBExpert, porém ele ordena normalmente, pela cidade e depois pelo nome. Mesmo se eu colocar para ordenar somente com a cidade não da certo.
Código BD:
| Código: |
select A.ID_CANDIDATOS, A.FK_IDUSUARIO_CAD, A.FK_IDUSUARIO_EDIT, A.FK_IDCIDADE, A.FK_IDESTADO, A.FK_IDPAIS,
A.FK_IDSETOR, A.FK_IDNUM_CURSILHO, A.FK_IDRETIROS, B.LOGIN as USUARIO_CAD, C.LOGIN as USUARIO_EDIT,
D.NOME as CIDADE, E.NOME as ESTADO, F.NOME as PAIS, G.NOME as SETOR, H.NOME as NUM_CURSILHO, I.TEMA as RETIROS,
A.NOME, A.DATA_NASC, A.OBSERVACAO, A.OP_RESTRICAO_ALIM, A.TIPO_RESTRICAO_ALIM, A.NUM_LOCAL, A.RUA, A.BAIRRO,
A.CEP, A.TELEFONE, A.EMAIL, A.PAGO, A.VALOR_PAGAR, A.VALOR_PAGO, A.VALOR_INSCRICAO, A.DATA_CADASTRO,
A.DATA_EDITADO, A.EXCLUIDO, A.IMG
from CANDIDATOS A
left join USUARIO B on (A.FK_IDUSUARIO_CAD = B.ID_USUARIO)
left join USUARIO C on (A.FK_IDUSUARIO_EDIT = C.ID_USUARIO)
left join CIDADE D on (A.FK_IDCIDADE = D.ID_CIDADE)
left join ESTADO E on (A.FK_IDESTADO = E.ID_ESTADO)
left join PAIS F on (A.FK_IDPAIS = F.ID_PAIS)
left join SETOR G on (A.FK_IDSETOR = G.ID_SETOR)
left join NUM_CURSILHO H on (A.FK_IDNUM_CURSILHO = H.ID_NUM_CURSILHO)
left join RETIROS I on (A.FK_IDRETIROS = I.ID_RETIROS)
order by D.NOME, A.NOME
|
Como está no Delphi, o edtBuscar.text estaria em branco:
| Código: |
Pesquisa := 'D.NOME' + ' Like ' + QuotedStr(edtBuscar.Text + '%') + ' order by D.NOME, A.NOME'
with TClientDataSet(dtsPesqCandidatos.DataSet) do
begin
Close;
CommandText := 'select A.ID_CANDIDATOS, A.FK_IDUSUARIO_CAD, A.FK_IDUSUARIO_EDIT, A.FK_IDCIDADE, A.FK_IDESTADO, A.FK_IDPAIS, '
+ 'A.FK_IDSETOR, A.FK_IDNUM_CURSILHO, A.FK_IDRETIROS, B.LOGIN as USUARIO_CAD, C.LOGIN as USUARIO_EDIT, '
+ 'D.NOME as CIDADE, E.NOME as ESTADO, F.NOME as PAIS, G.NOME as SETOR, H.NOME as NUM_CURSILHO, I.TEMA as RETIROS, '
+ 'A.NOME, A.DATA_NASC, A.OBSERVACAO, A.OP_RESTRICAO_ALIM, A.TIPO_RESTRICAO_ALIM, A.NUM_LOCAL, A.RUA, A.BAIRRO, '
+ 'A.CEP, A.TELEFONE, A.EMAIL, A.PAGO, A.VALOR_PAGAR, A.VALOR_PAGO, A.VALOR_INSCRICAO, A.DATA_CADASTRO, '
+ 'A.DATA_EDITADO, A.EXCLUIDO, A.IMG '
+ 'from CANDIDATOS A '
+ 'left join USUARIO B on (A.FK_IDUSUARIO_CAD = B.ID_USUARIO) '
+ 'left join USUARIO C on (A.FK_IDUSUARIO_EDIT = C.ID_USUARIO) '
+ 'left join CIDADE D on (A.FK_IDCIDADE = D.ID_CIDADE) '
+ 'left join ESTADO E on (A.FK_IDESTADO = E.ID_ESTADO) '
+ 'left join PAIS F on (A.FK_IDPAIS = F.ID_PAIS) '
+ 'left join SETOR G on (A.FK_IDSETOR = G.ID_SETOR) '
+ 'left join NUM_CURSILHO H on (A.FK_IDNUM_CURSILHO = H.ID_NUM_CURSILHO) '
+ 'left join RETIROS I on (A.FK_IDRETIROS = I.ID_RETIROS) '
+ 'where A.EXCLUIDO = ' + QuotedStr('NAO') + ' AND '
+ Pesquisa;
Open;
end;
|
Fico no aguardo, desde já agradecido!
Editado pela última vez por x7r3m3x em Sex Out 05, 2018 10:15 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Out 03, 2018 9:27 am Assunto: |
|
|
Bom dia,
As propriedades IndexFieldNames e IndexName do ClientDataSet estão em branco?
Se estiverem e o problema persistir, experimente fazer um teste deixando a opção poRetainServerOrder do DataSetProvider igual a true.
Espero que ajude
Editado pela última vez por imex em Ter Out 03, 2023 2:58 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Sex Out 05, 2018 10:14 pm Assunto: |
|
|
| imex escreveu: | Bom dia,
As propriedades IndexFieldNames e IndexName do ClientDataSet estão em branco?
Se estiverem e o problema persistir, experimente fazer um teste deixando a opção poRetainServerOrder do DataSetProvider igual a true.
Espero que ajude
|
Olá imex,
Deu certo com a propriedade poRetainServerOrder, muito obrigado! |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|