ERRO EM SELECT COM SUM NO POSTGRESQL

MARCIOHR 18/05/2011 16:19:00
#374295
Amigos, boa tarde!

Estou com um problema misterioso na hora de fazer consultas utilizando ADO com Postgre,
Quando por exemplo executo uma consuta contendo sum, por exemplo:

Sql = [Ô]select sum(quantidade) as somar1, sum(preco_custo) as somar2, sum(preco_total) as somar3 from produtos_apurados[Ô]
Set T_Produtos_Apurados = New Recordset
T_Produtos_Apurados.Open Sql, Arquivo, adOpenDynamic, adLockOptimistic

Me é devolvido o seguinte erro:
Erro não especificado nº -2147467259

O engraçado é que se eu persistir na consulta, ou mesmo se entrar no PGAdmin e exeutar a mesma me é retornado os valores corretamente, o que será que pode estar acontecendo, será que alguns dos amigos já passaram por isso?

Quando utilizava a mesma consulta usando o banco Access a mesma nunca me retornou nenhum erro.

Tentei mudar o tipo do cursor para Static, o tipo da trava para adLockBatchOptimistic

Se alguem puder me ajudar, agradeço!
ROBIU 18/05/2011 16:24:07
#374297
Citação:

Set T_Produtos_Apurados = New Recordset



não seria assim:

Set T_Produtos_Apurados = New ADODB.Recordset
MARCIOHR 18/05/2011 16:28:38
#374299
Não pois ja declado T_Produtos_Apurados como uma variavel publica RecordSet e não é necessário utilizar o ADODB, mas tentei assim também e me retornou o erro, valeu!
MARCIOHR 19/05/2011 09:53:01
#374369
Se essa consulta não tiver valores para retornar, isto é, não tiver registros não dá erro, o recordset retorna sem valores = 0 e os campos somar1, somar2 e somar3 vem como nulos, normal até ai.
Tentei usar um recordset privado também e não deu certo... que coisa isso!
Será um tipo de incompatibilidade do Postgre com conexão ADO?
Detalhe no meu exemplo Arquivo seria a varianel de conexão para o banco de dados, influência de utilizar Access, rs

Se alguem puder me ajudar...

Obrigado
MSMJUDAS 19/05/2011 11:51:38
#374386
Se é somente consulta, tire isso: adOpenDynamic, adLockOptimistic

E coloque isso: adOpenKeySet, adLockReadOnly.


Dim T_Produtos_Apurados As New ADODB.Recordset

Sql = [Ô]select sum(quantidade) as somar1, sum(preco_custo) as somar2, sum(preco_total) as somar3 from produtos_apurados[Ô]
T_Produtos_Apurados.Open Sql, Arquivo, adOpenKeySet, adLockReadOnly
LLAIA 19/05/2011 12:33:54
#374394
Se não estou enganado, não é possível atribuir cursores de edição e travas em recordset que possuem consultas de agregação. Faça a consulta sem cursores definidos e veja se retorna alguma coisa.
MARCIOHR 16/06/2011 13:32:26
#376976
Amigos propositamente deixei este tópico em aberto para ter certeza de como resolvi o problema, segue ai então a dica da resolução:

Estava utilizando o driver ODBC versão 9.00.0200 até entao, resolvi tentar com um novo driver lançado recentemente: 9.00.0300 e matou a charada, o problema estava no driver.

Está no link abaixo:

http://www.postgresql.org/ftp/odbc/versions/msi/

Agradeço a todos que me ajudaram!
Tópico encerrado , respostas não são mais permitidas