Fórum problemas com indice #40377
26/11/2003
0
o campo e do tipo varchar mas o conteudo e sequencial:
200-2001
200-0002
200-0003
ja tentei criar outro indice mas mesmo assim nada
grato pela atenção
Gandalf
Curtir tópico
+ 0Posts
26/11/2003
Afarias
Particularmente, em bancos de dados relacionais, a ´ordem´ dos registros não tem qualquer significado -- os registros não tem uma ordem definida ou melhor -->> isto não é importante.
Se vc quer ver sua consulta odernada por algum(s) campo(s), vc deve usar a cláusula ORDER BY em um SELECT, ex::
SELECT * FROM MINHA_TABELA
ORDER BY campo_tal;
T+
Gostei + 0
26/11/2003
Gandalf
digo isso qp minhas DBEdit acessam direto a tabela
um componente query resolve esse problema?
Gostei + 0
26/11/2003
Afarias
|digo isso qp minhas DBEdit acessam direto a tabela
apenas não confie em ´ordem´ ... ela não existe em bancos relacionais.
e nunca use componenes Tables (seja qual for) com Interbase (ou FB) -- este componentes não são projetados para bancos relacionais.
|um componente query resolve esse problema?
qualquer componente que permita definir seu SQL (como um TxxQuery), seja com for ele, resolve o ´problema´. Por meio de SQL vc poderá ordenar os registros com o ORDER BY
de qualquer forma, quando a ordenação é útil apenas por motivo de apresentação dos registros, vc *pode optar* por ordenar os registros em memória (usado tabelas de memória como o ClientDataSet por ex) -- neste caso não depende do banco de dados (ou SQL).
T+
Gostei + 0
27/11/2003
Gandalf
select * from PECA
order by CODIGO
mesmo assim os campos aparecem embaralhados
onde estou errando?
Gostei + 0
27/11/2003
Afarias
T+
Gostei + 0
27/11/2003
Gandalf
olhe os primeiros registros:
200-0006
200-0022
200-0023
200-0024
200-0001
200-0002
200-0003
Gostei + 0
27/11/2003
Afarias
vc está realmente executando o select com order by (neste campo)???
já testou isso (este SQL) no IBConsole??
qual o CHAR-SET e COLLATE do campo?? (se bem q neste caso acho q não existe collate com esta estranha ordenação!)
T+
Gostei + 0
27/11/2003
Gandalf
fiz igual fiz no ibquery e ele ordenou
Gostei + 0
27/11/2003
Afarias
...vc tem certeza que não está mudando o código SQL da query antes de sua execução (e assim, não colocando o ORDER BY) ??
T+
Gostei + 0
27/11/2003
Gandalf
como faço para executar o codigo sql
coloquei query.execsqlno showmodal e deu mensagen de erro
Gostei + 0
27/11/2003
Stci
Pois ExecSql não é para executar Instruçoes SELECT e sim ( Update, Insert e Delete ).
Gostei + 0
27/11/2003
Gandalf
Gostei + 0
27/11/2003
Afarias
T+
Gostei + 0
28/11/2003
Gandalf
fiz um indice novo e alterei no dataset do datasource o indexname e indiquei o index que fiz, agora esta ordenando
Gostei + 0
28/11/2003
Afarias
|indiquei o index que fiz, agora esta ordenando
Cara... como disse antes INDICES NÃO TEM NADA Q VER COM ORDENAÇÃO - vc NÃO DISSE que componente está usando, mas Querys NÃO tem essa propriedade que vc falou (INDEXNAME)
Se vc está usando um ClientDataSet -- a oredenção é em MEMÓRIA E NÃO TEM NADA A VER COM O BANCO!!! Se está usando um TABLE (algo que nunca deveria usar com bancos como o IB ou FB) é ´quase´ a mesma coisa.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)