Erro em select

Delphi

11/04/2005

Estou usando o seguinte seletc no delphi com firebird 1.5

select * from ATENDIMENTO left join CHAMADO on ATENDIMENTO.IDCHAMADO = CHAMADO.IDCHAMADO left join CLIENTE on CHAMADO.IDCLIENTE = CLIENTE.IDCLIENTE left join TECNICO on ATENDIMENTO.IDTECAGENDADO = TECNICO.IDTECNICO left join TECNICO on ATENDIMENTO.IDTECATENDIDO = TECNICO.IDTECNICO left join TIPO on ATENDIMENTO.TIPO = TIPO.IDTIPO where ATENDIMENTO.IDCHAMADO in (select IDCHAMADO from CHAMADO where IDCLIENTE = :PCliente) order by ATENDIMENTO.IDCHAMADO, ATENDIMENTO.IDATENDIMENTO


No ibconsole e no ibexpert ele executa normalmente, qdo tento executálo pelo delphi ele dá o erro de numeric overflow or string truncation


Anfm

Anfm

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

11/04/2005

Vc está passando o CHARACTER SET correto na conexão?


GOSTEI 0
Ariovaldo

Ariovaldo

11/04/2005

vc esta passando o Parametro PCliente lá no DepHi?


GOSTEI 0
Anfm

Anfm

11/04/2005

Sim.... estou passando o parâmetro PCliente corretamente.

A única propriedade q mudei no ClientDataSet foi o PacketRecords para 30, para q a consulta me troucesse 30 registros de cada vez. Já voltei pra 0 q é o default e continua o mesmo erro.


GOSTEI 0
Cabelo

Cabelo

11/04/2005

Colega..

Seu problema está no seu SQLConnection, vc deve setar o CharSet de acordo com o banco que vc usa, o firebird faz esta distinção.

Entre na sua conexão e altere de acordo com o IBExpert, o charset e o collate..

pois sem isso vc não consegue selecionar alguns registros que tenham caracteres especiais..

espero ter ajudado..


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

11/04/2005

não entendi o porque do subselect. assim funcionaria:

select * 
from ATENDIMENTO 
left join CHAMADO on (CHAMADO.IDCHAMADO=ATENDIMENTO.IDCHAMADO)
left join CLIENTE on (CLIENTE.IDCLIENTE=CHAMADO.IDCLIENTE)
left join TECNICO AGEN on (AGEN.IDTECNICO=ATENDIMENTO.IDTECAGENDADO)
left join TECNICO ATEN on (ATEN.IDTECNICO=ATENDIMENTO.IDTECATENDIDO)
left join TIPO on (TIPO.IDTIPO=ATENDIMENTO.TIPO)
where CHAMADO.IDCLIENTE = :PCliente
order by ATENDIMENTO.IDCHAMADO, ATENDIMENTO.IDATENDIMENTO


eu apelidei a tabela TECNICO pois o servidor pode estar se ´perdendo´ por ter as duas tabelas com o mesmo apelido.


GOSTEI 0
Anfm

Anfm

11/04/2005

a propriedade packet records na verdade é -1.....

voltei a propriedade para -1 e funcionou, e também tirei o subselect e fiz igual ao indicado aki no fórum.

Obrigado pela atenção de todos


GOSTEI 0
Anfm

Anfm

11/04/2005

a propriedade packet records na verdade é -1.....

voltei a propriedade para -1 e funcionou, e também tirei o subselect e fiz igual ao indicado aki no fórum.

Obrigado pela atenção de todos


GOSTEI 0
Anfm

Anfm

11/04/2005

a propriedade packet records na verdade é -1.....

voltei a propriedade para -1 e funcionou, e também tirei o subselect e fiz igual ao indicado aki no fórum.

Obrigado pela atenção de todos


GOSTEI 0
POSTAR