Problemas com DBExpress
Bom, meus problemas estão sendo os seguinte:
Primeiro e Mais grave deles - Em uma tabela de meu banco de dados (e em apenas uma tabela), quando executo a operação Select * From Tabela, me é retornado um erro( Operation Not Applicable ). O estranho é que é só com essa tabela.
Segundo Problema - Em algumas tabelas com campos tipo Numeric(15,4) se tiver com valores, por exemplo assim 178, 160, 125,aperecem multiplicados por mil. Aparecem assim: 178000, 160000, 125000.
Alguém poderia me ajudar??
Detalhes: Uso Delphi 7 Enterprise, Banco de Dados DB2 8.2, Driver DBExpress nativo do delphi. Os erros persistem (usando senha de admistrador/dono do banco e com administrador da estação. também testei com usuário comum, mas dá o mesmo erro).
Primeiro e Mais grave deles - Em uma tabela de meu banco de dados (e em apenas uma tabela), quando executo a operação Select * From Tabela, me é retornado um erro( Operation Not Applicable ). O estranho é que é só com essa tabela.
Segundo Problema - Em algumas tabelas com campos tipo Numeric(15,4) se tiver com valores, por exemplo assim 178, 160, 125,aperecem multiplicados por mil. Aparecem assim: 178000, 160000, 125000.
Alguém poderia me ajudar??
Detalhes: Uso Delphi 7 Enterprise, Banco de Dados DB2 8.2, Driver DBExpress nativo do delphi. Os erros persistem (usando senha de admistrador/dono do banco e com administrador da estação. também testei com usuário comum, mas dá o mesmo erro).
Firekiller
Curtidas 0
Respostas
Ricna
17/10/2005
Não creio que o problema seja no dbexpress, provavelmente é no seu banco de dados mesmo.
GOSTEI 0
Firekiller
17/10/2005
Colega, o problema não é com o meu banco, pois através do Java funciona blz. Testei com ADO e funciona blz... mas não funciona com o DBExpress. Porém não posso alterar para ADO, pois o projeto já está todo desenvolvido em DBExpress, e o problema é só com essa Tabela.
GOSTEI 0
Jcalmeij
17/10/2005
Esta tabela é uma ´tabela´ propriamente dita ou uma view???
Não setaste os esquemas de acesso a metadados...
schematype para ´filtrar´ por tables???
Não setaste os esquemas de acesso a metadados...
schematype para ´filtrar´ por tables???
GOSTEI 0
Firekiller
17/10/2005
É uma tabela física mesmo. Só não entendi porque ele tá multiplicando o valor desse campo por mil.
PS: Com ADO os valores são retornados blz.
PS: Com ADO os valores são retornados blz.
GOSTEI 0
Rhosaka
17/10/2005
O erro ´ Operation not aplicable ´ ocorre por causa do componente ClientDataSet por incompatibilidade de dados entre o delphi e o banco de dados.. mais comum com campos do tipo data, você tem duas maneira de resolver este problema uma seria registrar uma versão mais nova da dll midas.dll na maquina onde ocorre o erro através do comando regsrv32 caminho da dll, ou então incorporar a dll no seu projeto através da declaração ´MidasLib´ em seu datamodule.
ja o segundo problema verifique o tipo de dado que o dbexpress esta utilizando para fazer o mapeamento no delphi.. ás vezes ele pode estar utilizando um tipo que não seria o mais correto..
ja o segundo problema verifique o tipo de dado que o dbexpress esta utilizando para fazer o mapeamento no delphi.. ás vezes ele pode estar utilizando um tipo que não seria o mais correto..
GOSTEI 0
Bugaloobr
17/10/2005
Na questao:
Segundo Problema - Em algumas tabelas com campos tipo Numeric(15,4) se tiver com valores, por exemplo assim 178, 160, 125,aperecem multiplicados por mil. Aparecem assim: 178000, 160000, 125000.
Me parece normal, jah q o seu numero possui no maximo 14 posicoes, sendo 4 de uma ´mantissa´ decimal. Assim, um numero inteiro eh ele mais a mantissa decimal 0000 (x,4). Se nao me engano, apenas quanto o banco dah suporte a tipos numericos flutuantes, eles sao armazenados com sua porcao decimal por inteiro. Espero ter ajudado
Segundo Problema - Em algumas tabelas com campos tipo Numeric(15,4) se tiver com valores, por exemplo assim 178, 160, 125,aperecem multiplicados por mil. Aparecem assim: 178000, 160000, 125000.
Me parece normal, jah q o seu numero possui no maximo 14 posicoes, sendo 4 de uma ´mantissa´ decimal. Assim, um numero inteiro eh ele mais a mantissa decimal 0000 (x,4). Se nao me engano, apenas quanto o banco dah suporte a tipos numericos flutuantes, eles sao armazenados com sua porcao decimal por inteiro. Espero ter ajudado
GOSTEI 0
Firekiller
17/10/2005
colega Rhosaka,
Peguei a última versão do Midas, disponivel no site www.distribucon.com e registrei a mesma, porém foi em vão. Tentei utilizar a unit MidasLib, mas nada também. Mas fico muito grato pela ajuda que vocês estão me dando.
Colega BugalooBr
Meu banco de dados é DB2 V. 8.2, ele possui suporte a ponto flutuante. Tanto é que, os valores retornados para essa coluna, quando uso ADO (OleDB ou mesmo ODBC) traz os valores normalmente.
Bom, vou ter que deixar meio que na ´gambiarra´ mesmo (pelo menos por enquanto). Vou deixar, apenas para essa tabela, usando ADO, as outras deixo com DBExpress (Não gosto muito disso mas se é o jeito, fazer o que né?!)
Fico muito grato a todos. Muito obrigado mesmo!
Peguei a última versão do Midas, disponivel no site www.distribucon.com e registrei a mesma, porém foi em vão. Tentei utilizar a unit MidasLib, mas nada também. Mas fico muito grato pela ajuda que vocês estão me dando.
Colega BugalooBr
Meu banco de dados é DB2 V. 8.2, ele possui suporte a ponto flutuante. Tanto é que, os valores retornados para essa coluna, quando uso ADO (OleDB ou mesmo ODBC) traz os valores normalmente.
Bom, vou ter que deixar meio que na ´gambiarra´ mesmo (pelo menos por enquanto). Vou deixar, apenas para essa tabela, usando ADO, as outras deixo com DBExpress (Não gosto muito disso mas se é o jeito, fazer o que né?!)
Fico muito grato a todos. Muito obrigado mesmo!
GOSTEI 0