Array
(
)

Incluir registro - DBExpress

Airoosp
   - 04 abr 2006

Bom dia,


Estou precisando fazer a inclusão de valores em uma tabela do banco Oracle 8.1.7, e estou utilizando os componentes da tabela DBExpress ( Delphi 6 ) para fazer a conexão com o banco e demais processos.
Para fazer a inclusão do registro, utilizei o componente SQLQuery e ao executar o processo aparece a mensagem de erro ´DBX Error: Invalid Field Type´. Verifiquei aqui no fórum que o problema pode ser nos campos tipo data, a tabela que estou utilizando tem campos do tipo varchar, number(10,2) e date. Fiz as modificações como sugerido pelos colegas aqui do fórum mas mesmo assim o erro continua.

O conteúdo da query é:

insert into tabela3
(codigo, tipo, periodo, data, valor)
values
(:p_codigo, p_tipo, p_periodo, p_data, p_valor)

e no código Delphi passo os valores

DM.SQLQ_Ins_Tab3.ParamByName(´p_codigo´).ASSTRING:= codigo.text;
DM.SQLQ_Ins_Tab3.ParamByName(´p_tipo´).ASSTRING:= tipo.text;
DM.SQLQ_Ins_Tab3.ParamByName(´p_periodo´).ASSTRING:= periodo.text;
DM.SQLQ_Ins_Tab3.ParamByName(´p_data´).ASDATE:=DM.CDS_Data.FieldByName(´sysdate´).asdatetime;
DM.SQLQ_Ins_Tab3.ParamByName(´p_valor´).ASFLOAT:= v_custo;

DM.SQLQ_Ins_Tab3.ExecSql;

Alguém sabe o que pode estar errado?


Obrigado


Airton


Aldus
   - 04 abr 2006

Olá Airton, você notou que está faltando os dois pontos ´:´ antes dos parãmetros?

De
(:p_codigo, p_tipo, p_periodo, p_data, p_valor)

Para
(:p_codigo,:p_tipo, :p_periodo, :p_data, :p_valor)


Aldus
   - 04 abr 2006

Como disse o amigo Gameiro em uma mensagem anterior, tente fazer a inclusão de campo por campo e verifique onde está o erro.

Mario


Airoosp
   - 04 abr 2006

Aldus,

Percebi acrescentei o mesmo tópico já com os dois pontos que estavam faltando. Você sabe como resolver o problema de conversão de valores quando se utiliza o DBExpress com o Oracle, pois estou tendo problemas para incluir valores em uma tabela quando o tipo do campo for Integer e Number(10,2). Também inclui um tópico com esta pergunta.

Obrigado

Airton