Sp Inserindo 2 registros na mesma tabela...

Firebird

13/07/2006

Pessoal tenho a seguinte SP :

CREATE PROCEDURE INSERT_MANUTENCAO( I_TIPO_MANUT CHAR(1), I_STATUS_OS CHAR(1), I_COD_COLABORADOR CHAR(15), I_ENDERECO_MANUT VARCHAR(150), I_COD_GRUPO_PAT CHAR(15), I_COD_SUB_GRUPO_PAT CHAR(15), I_COD_INSUMO CHAR(15), I_COD_CONJUNTO CHAR(15), I_COD_REFERENCIA CHAR(15), I_DATA_PREVISAO DATE, I_USUARIO VARCHAR(20), I_GRANDEZA_CONSUMO_MEDIO VARCHAR(4), I_QTD_CONSUMO_MEDIO FLOAT, I_QTD_MANUT FLOAT, I_GRANDEZA_MANUT VARCHAR(4), I_DATA_CADASTRO DATE ) RETURNS ( C_COD_OS CHAR(15) ) AS DECLARE VARIABLE V_COD_OS CHAR(15); begin select coalesce(MAX(C_COD_OS), 0) from OS0100 into :C_COD_OS; select C_RESULTADO from F_Zeros(:C_COD_OS, 1, 15) into :V_COD_OS; insert into OS0100 (C_COD_OS, C_TIPO_OS, C_STATUS_OS, C_COD_COLABORADOR, C_ENDERECO_MANUT, C_COD_GRUPO_PAT, C_COD_SUB_GRUPO_PAT, C_COD_INSUMO, C_COD_CONJUNTO, C_COD_REFERENCIA) values (:V_COD_OS, :I_TIPO_MANUT, :I_STATUS_OS, :I_COD_COLABORADOR, :I_ENDERECO_MANUT, :I_COD_GRUPO_PAT, :I_COD_SUB_GRUPO_PAT, :I_COD_INSUMO, :I_COD_CONJUNTO, :I_COD_REFERENCIA); insert into CM0100 (C_COD_OS, C_COD_GRUPO_PAT, C_COD_SUB_GRUPO_PAT, C_COD_CONJUNTO, C_COD_INSUMO, C_COD_REFERENCIA, C_DATA_PREVISAO, C_COD_COLABORADOR, C_TIPO_MANUT, C_USUARIO, C_ENDERECO_MANUT, C_GRANDEZA_CONSUMO_MEDIO, C_QTD_CONSUMO_MEDIO, C_QTD_MANUT, C_GRANDEZA_MANUT, C_DATA_CADASTRO) values (:V_COD_OS, :I_COD_GRUPO_PAT, :I_COD_SUB_GRUPO_PAT, :I_COD_CONJUNTO, :I_COD_INSUMO, :I_COD_REFERENCIA, :I_DATA_PREVISAO, :I_COD_COLABORADOR, :I_TIPO_MANUT, :I_USUARIO, :I_ENDERECO_MANUT, :I_GRANDEZA_CONSUMO_MEDIO, :I_QTD_CONSUMO_MEDIO, :I_QTD_MANUT, :I_GRANDEZA_MANUT, :I_DATA_CADASTRO); C_COD_OS = :V_COD_OS; suspend; end


estou usando no delphi assim :

´select C_COD_OS from INSERT_MANUTENCAO(´´P´´, ´´E´´, ´´´+
s_cod_colaborador+´´´, ´´´+txtEnderecoManut.Text+´´´, ´´´+
s_cod_grupo_pat+´´´, ´´´+s_cod_sub_grupo_pat+´´´, ´´´+
s_cod_insumo+´´´, ´´´+s_cod_conjunto+´´´, ´´´+
s_cod_referencia+´´´, ´´´+FormatDateTime(´mm/dd/yyyy´,
s_data_previsao)+´´´, ´´´+MD.senManutencao.F_Le_Usuario+´´´, ´´´+
s_grandeza_consumo_medio+´´´, ´´´+FormatFloat(´0.00´,
s_qtd_consumo_medio)+´´´, ´´´+FormatFloat(´0.00´,
s_qtd_manut)+´´´, ´´´+s_grandeza_manut+´´´, ´´´+
FormatDateTime(´mm/dd/yyyy´, g_now)+´´´)´;

uso DBExpress SQLQuery + DataSetProvider + ClientDataSet

está duplicando os registros, + com o código da OS diferente...

ex:

C_COD_OS = 000000000000127
C_COD_OS = 000000000000128

com o restante dos campos idênticos... nas tabelas CM0100 e OS0100

alguém sabe onde estou errando????


Cabelo

Cabelo

Curtidas 0
POSTAR