Fórum Pegar o código desta procedure? #227250
20/04/2004
0
Olá Pessoal,
Estou usando esta procedure para fazer o meu cadastro de OS, mas preciso pegar o campo COD_OS, depois do insert para poder gerar uma query para imprimir, estou usando dbexpress e firebird.
desde já agradeço toda e qualquer ajuda.
Rodolfo Luiz.
Rcife - PE
www.djr.eti.br
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE ´SPI_ORDSERV´
(
´COD_OS´ INTEGER,
´COD_CLI´ INTEGER,
´EQUIPA´ VARCHAR(100) CHARACTER SET WIN1252,
´EQUIPA_NSERIE´ VARCHAR(50) CHARACTER SET WIN1252,
´TENSAO´ VARCHAR(15) CHARACTER SET WIN1252,
´MARCA´ VARCHAR(100) CHARACTER SET WIN1252,
´MODELO´ VARCHAR(100) CHARACTER SET WIN1252,
´PROB´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´ACESSORIOS´ VARCHAR(255) CHARACTER SET WIN1252,
´DATCAD´ DATE,
´COD_FUN´ INTEGER,
´COD_SERV´ INTEGER,
´DATABERT´ DATE,
´DATENTREG´ DATE,
´DIAGTEC´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´PARSERV´ VARCHAR(20) CHARACTER SET WIN1252,
´OBS´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80
)
RETURNS
(
´RCOD_OS´ INTEGER
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE ´SPI_ORDSERV´
(
´COD_OS´ INTEGER,
´COD_CLI´ INTEGER,
´EQUIPA´ VARCHAR(100) CHARACTER SET WIN1252,
´EQUIPA_NSERIE´ VARCHAR(50) CHARACTER SET WIN1252,
´TENSAO´ VARCHAR(15) CHARACTER SET WIN1252,
´MARCA´ VARCHAR(100) CHARACTER SET WIN1252,
´MODELO´ VARCHAR(100) CHARACTER SET WIN1252,
´PROB´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´ACESSORIOS´ VARCHAR(255) CHARACTER SET WIN1252,
´DATCAD´ DATE,
´COD_FUN´ INTEGER,
´COD_SERV´ INTEGER,
´DATABERT´ DATE,
´DATENTREG´ DATE,
´DIAGTEC´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´PARSERV´ VARCHAR(20) CHARACTER SET WIN1252,
´OBS´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80
)
RETURNS
(
´RCOD_OS´ INTEGER
)
AS
declare variable MAXCODOS integer;
begin
select max(COD_OS) + 1 from
ORDSERV into :MAXCODOS;
if (:MAXCODOS is null) then
begin
insert into ORDSERV (COD_OS,
COD_CLI,
EQUIPA,
EQUIPA_NSERIE,
TENSAO,
MARCA,
MODELO,
PROB,
ACESSORIOS,
DATCAD,
COD_FUN,
COD_SERV,
DATABERT,
DATENTREG,
DIAGTEC,
PARSERV,OBS)
values(1,
:COD_CLI,
:EQUIPA,
:EQUIPA_NSERIE,
:TENSAO,
:MARCA,
:MODELO,
:PROB,
:ACESSORIOS,
:DATCAD,
:COD_FUN,
:COD_SERV,
:DATABERT,
:DATENTREG,
:DIAGTEC,
:PARSERV, :OBS);
suspend;
end else
begin
insert into ORDSERV (COD_OS,
COD_CLI,
EQUIPA,
EQUIPA_NSERIE,
TENSAO,
MARCA,
MODELO,
PROB,
ACESSORIOS,
DATCAD,
COD_FUN,
COD_SERV,
DATABERT,
DATENTREG,
DIAGTEC,
PARSERV,OBS)
values(:MAXCODOS,
:COD_CLI,
:EQUIPA,
:EQUIPA_NSERIE,
:TENSAO,
:MARCA,
:MODELO,
:PROB,
:ACESSORIOS,
:DATCAD,
:COD_FUN,
:COD_SERV,
:DATABERT,
:DATENTREG,
:DIAGTEC,
:PARSERV, :OBS);
suspend;
end
end
^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
Estou usando esta procedure para fazer o meu cadastro de OS, mas preciso pegar o campo COD_OS, depois do insert para poder gerar uma query para imprimir, estou usando dbexpress e firebird.
desde já agradeço toda e qualquer ajuda.
Rodolfo Luiz.
Rcife - PE
www.djr.eti.br
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE ´SPI_ORDSERV´
(
´COD_OS´ INTEGER,
´COD_CLI´ INTEGER,
´EQUIPA´ VARCHAR(100) CHARACTER SET WIN1252,
´EQUIPA_NSERIE´ VARCHAR(50) CHARACTER SET WIN1252,
´TENSAO´ VARCHAR(15) CHARACTER SET WIN1252,
´MARCA´ VARCHAR(100) CHARACTER SET WIN1252,
´MODELO´ VARCHAR(100) CHARACTER SET WIN1252,
´PROB´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´ACESSORIOS´ VARCHAR(255) CHARACTER SET WIN1252,
´DATCAD´ DATE,
´COD_FUN´ INTEGER,
´COD_SERV´ INTEGER,
´DATABERT´ DATE,
´DATENTREG´ DATE,
´DIAGTEC´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´PARSERV´ VARCHAR(20) CHARACTER SET WIN1252,
´OBS´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80
)
RETURNS
(
´RCOD_OS´ INTEGER
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE ´SPI_ORDSERV´
(
´COD_OS´ INTEGER,
´COD_CLI´ INTEGER,
´EQUIPA´ VARCHAR(100) CHARACTER SET WIN1252,
´EQUIPA_NSERIE´ VARCHAR(50) CHARACTER SET WIN1252,
´TENSAO´ VARCHAR(15) CHARACTER SET WIN1252,
´MARCA´ VARCHAR(100) CHARACTER SET WIN1252,
´MODELO´ VARCHAR(100) CHARACTER SET WIN1252,
´PROB´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´ACESSORIOS´ VARCHAR(255) CHARACTER SET WIN1252,
´DATCAD´ DATE,
´COD_FUN´ INTEGER,
´COD_SERV´ INTEGER,
´DATABERT´ DATE,
´DATENTREG´ DATE,
´DIAGTEC´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80,
´PARSERV´ VARCHAR(20) CHARACTER SET WIN1252,
´OBS´ BLOB CHARACTER SET WIN1252 SUB_TYPE TEXT SEGMENT SIZE 80
)
RETURNS
(
´RCOD_OS´ INTEGER
)
AS
declare variable MAXCODOS integer;
begin
select max(COD_OS) + 1 from
ORDSERV into :MAXCODOS;
if (:MAXCODOS is null) then
begin
insert into ORDSERV (COD_OS,
COD_CLI,
EQUIPA,
EQUIPA_NSERIE,
TENSAO,
MARCA,
MODELO,
PROB,
ACESSORIOS,
DATCAD,
COD_FUN,
COD_SERV,
DATABERT,
DATENTREG,
DIAGTEC,
PARSERV,OBS)
values(1,
:COD_CLI,
:EQUIPA,
:EQUIPA_NSERIE,
:TENSAO,
:MARCA,
:MODELO,
:PROB,
:ACESSORIOS,
:DATCAD,
:COD_FUN,
:COD_SERV,
:DATABERT,
:DATENTREG,
:DIAGTEC,
:PARSERV, :OBS);
suspend;
end else
begin
insert into ORDSERV (COD_OS,
COD_CLI,
EQUIPA,
EQUIPA_NSERIE,
TENSAO,
MARCA,
MODELO,
PROB,
ACESSORIOS,
DATCAD,
COD_FUN,
COD_SERV,
DATABERT,
DATENTREG,
DIAGTEC,
PARSERV,OBS)
values(:MAXCODOS,
:COD_CLI,
:EQUIPA,
:EQUIPA_NSERIE,
:TENSAO,
:MARCA,
:MODELO,
:PROB,
:ACESSORIOS,
:DATCAD,
:COD_FUN,
:COD_SERV,
:DATABERT,
:DATENTREG,
:DIAGTEC,
:PARSERV, :OBS);
suspend;
end
end
^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
Rood_luiz
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)