GARANTIR DESCONTO

Fórum Delphi + PostgreSQL limit + offset #428602

12/11/2012

0

Boa Tarde pessoal.
Estou usando o postgres como banco, meu select ficou assim:

select cod_cliente, nome, rg, cpf from cadcliente order by cod_cliente limit 500 offset 1

até ótimo ele me traz os 500 registro na boa, meu problema vem quando uso offset = 0 ele me retorna o seguinte erro: "list index out off bounds(-1)" alguem saberia porque o delphi 2010 faz isso? eu descobri que ele estava ignorando o primeiro registro da minha consulta quando eu colocava 1, então fiz o teste no pgadmin com 0 e trouxe normal, se eu tiro o order by ele funciona o offset 0, porém traz todos os registros desordenados e sempre um resultado diferente na consulta, se coloco o order by ele só funciona com o offset >= 1, caso contrário ele me retorna o erro acima no delphi 2010, estou usando query+datasetprovide+clientdataset.

Obrigado
Leandro Santos
Leandro Santos

Leandro Santos

Responder

Posts

12/11/2012

Claudia Nogueira

Pelo que conheço do offset, se colocar offset 0 quer dizer que vai mostrar a partir do primeiro registro, se usar offset 1 vai pular um, começando do segundo. Realmente tem que usar o order para funcionar corretamente.

Esse erro "list index out off bounds(-1)" dá no momento que você executa a Query ou em algum código mais pra baixo?
Você debugou pra ver onde está parando?
Responder

Gostei + 0

12/11/2012

Leandro Santos

Na verdade ele da erro quando vai abrir o ClientDataSet a Query abre normalmente, quando ele executa cds.open que ele me retorna este erro.
Responder

Gostei + 0

12/11/2012

Claudia Nogueira

Fiz aqui no mesmo cenário que você passou (Query, DataSetProvider e ClientDataSet) e não ocorreu o problema.
Para o componente de conexão eu uso do PgDac e o PostgreSQL versão 9.2.
Fiz com OFFSET 0 e OFFSET 1.
Vamos ver se alguém já passou por isso então.
Responder

Gostei + 0

12/11/2012

Leandro Santos

Humm, será que é meu driver de conexão então?
Uso o driver da Devart for Postgresql.
Você está usando qual Delphi Claudia?
Você pode me enviar este exemplo que você fez de teste para eu ver se aqui da erro?
Se puder, envie para leandrorodrigodossantos@hotmail.com
Responder

Gostei + 0

12/11/2012

Leandro Santos

Humm, será que é meu driver de conexão então?
Uso o driver da Devart for Postgresql.
Você está usando qual Delphi Claudia?
Você pode me enviar este exemplo que você fez de teste para eu ver se aqui da erro?
Se puder, envie para leandrorodrigodossantos@hotmail.com


Complementando estou usando este driver para dbxexpress http://www.devart.com/dbx/
Responder

Gostei + 0

12/11/2012

Deivison Melo

Clique no clientdataset e no menu contextual (botão direito) na opção Fields Editor e selecione todos os campos e faça a exclusão de todos eles... Depois ou vc adiciona ou deixa o próprio delphi adicionar!
Sua query está no SQLQuery (ou na SQLDataSet)? Faça o que disse e teste novamente...
Responder

Gostei + 0

13/11/2012

Leandro Santos

Bom dia Deivison
Eu não adicionei campos na query nem no clientdataset.
É mais estranho do que eu imaginava, estou trabalhando com DataSnap.
Responder

Gostei + 0

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

Aceitar