Dbx Oracle 10(Delphi 7)

02/07/2008

1

Boa Tarde a todos, estou iniciando no uso do Oracle 10g com a paleta DBX do Delphi 7, porém tenho encontrado uma certa dificuldade no tratamento dos dados.

O campo ´INTEIRO´ disponibilizado na própria ferramenta do Oracle não é refletida no SQLDATASET/CLIENTDATASET, sempre aparecendo no tipo ´TFMTBCDField´ e ao pedir para que se salve os dados (sendo aparentemente preenchidos corretamente) , tenho retornado a mensagem ´ORA-01722 ´ ao passar na propriedade ApplyUpdates(0). As minhas reais dúvidas são :

1- Como pode ser visualizado no Fields Editor o campo corretamente como TIntegerField ?
2- Qual a configuração correta do datasetprovider(update mode) / sqldataset (provider flags de cada campo) sendo que há chave primária nas tabelas e datasetprovider.UpdateMode := ´upWhereKeyOnly´ ?

Obrigado


Responder

Posts

03/07/2008

Ffabiop

Pois é, para conseguir um Inteiro no dataset do Delphi, tive que definir o campo como numerico com precisão 0. Ex: Id_Fornecedor numeric(6,0)


Responder

04/07/2008

Vfbruno

Bom Dia Fábio, por exemplo até usar a precisão (escala) está fácil, porém ao salvar no banco , a minha estrutura não fica como number(6,0) e ao abrir no cds ela simplesmente mostra como TFMTBCDFIELD . Vc poderia dizer os processos feitos por vc?

Obrigado


Responder

04/07/2008

Ffabiop

Trabalho a criação das tabelas via SQL Developer via DLL ou com as ferramentas do utilitário mesmo.

CREATE TABLE "BALANCA"."DOCUMENTOS" 
   ("NUMERO" NUMBER(10,0) NOT NULL ENABLE, 
"FORNECEDOR" NUMBER(10,0) NOT NULL ENABLE, 
"DATADOCUMENTO" DATE NOT NULL ENABLE, 
"SERIE" VARCHAR2(10 BYTE), 
"VENCIMENTO" DATE, 
"VALORNOTA" NUMBER(12,2), 
"FRETISTA" NUMBER(5,0));

Adicionando os campos no dataSet no Delphi ele pega os precisão 0 como inteiro e os precisão 2 como float.


Responder