Fórum Executar script com TIBQuery #383449
11/08/2010
0
Olá pessoal estou tentando executar o seguinte script via TIBQuery:
#Código
SQL.Clear;
SQL.Add(
'ALTER PROCEDURE RETORNACOMPROMISSOS '+
'( '+
' TIPO_PESSOA_PF INTEGER, '+
' TIPO_PESSOA_PJ INTEGER, '+
' TIPO_PESSOA_C_PJ INTEGER, '+
' TEXTO_ VARCHAR(100) CHARACTER SET WIN1252, '+
' NOME VARCHAR(100) CHARACTER SET WIN1252, '+
' DATA_01 DATE, '+
' DATA_02 DATE, '+
' OPCAO_01 INTEGER, '+
' OPCAO_02 INTEGER, '+
' OPCAO_03 INTEGER '+
') '+
'RETURNS '+
'( '+
' IDENTIFICADOR" INTEGER, '+
' DATA DATE, '+
' HORA TIME, '+
' TEXTO VARCHAR(30000) CHARACTER SET WIN1252, '+
' OPCAO INTEGER, '+
' PUBLICO INTEGER, '+
' LOGIN VARCHAR(10) CHARACTER SET WIN1252, '+
' QUEM VARCHAR(10) CHARACTER SET WIN1252 '+
') '+
'AS '+
'BEGIN '+
'FOR '+
'SELECT C.IDENTIFICADOR, C.DATA, C.HORA, C.TEXTO, C.OPCAO, C.PUBLICO, C.LOGIN, C.QUEM FROM COMPROMISSO C '+
'LEFT JOIN PESS0A_COMPROMISSO PC ON PC.ID_COMPROMISSO = C.IDENTIFICADOR '+
'LEFT JOIN PESSOAFISICA PF ON PF.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_PF '+
'LEFT JOIN PESSOAJURIDICA PJ ON PJ.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_PJ '+
'LEFT JOIN CONTATO_PJ C_PJ ON C_PJ.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_C_PJ '+
'WHERE '+
'C.DATA BETWEEN :DATA_01 AND :DATA_02 AND '+
'COALESCE(C.TEXTO,'') CONTAINING :TEXTO_ AND '+
'COALESCE(PJ.NOME,'')||COALESCE(PF.NOME,'')||COALESCE(C_PJ.NOME,'') CONTAINING :NOME AND '+
'C.OPCAO IN (:OPCAO_01, :OPCAO_02, :OPCAO_03) '+
'INTO :IDENTIFICADOR, :DATA, :HORA, :TEXTO, :OPCAO, :PUBLICO, :LOGIN, :QUEM '+
'DO '+
'SUSPEND; '+
'END;');
EXECSQL;
Transacao.CommitRetaining;
Ocorre que após a execução do mesmo... vou no IBConsole ver o metadados gerado aparece assim:
#Código
ALTER PROCEDURE "RETORNACOMPROMISSOS"
(
"TIPO_PESSOA_PF" INTEGER,
"TIPO_PESSOA_PJ" INTEGER,
"TIPO_PESSOA_C_PJ" INTEGER,
"TEXTO_" VARCHAR(100) CHARACTER SET WIN1252,
"NOME" VARCHAR(100) CHARACTER SET WIN1252,
"DATA_01" DATE,
"DATA_02" DATE,
"OPCAO_01" INTEGER,
"OPCAO_02" INTEGER,
"OPCAO_03" INTEGER
)
RETURNS
(
"IDENTIFICADOR" INTEGER,
"DATA" DATE,
"HORA" TIME,
"TEXTO" VARCHAR(30000) CHARACTER SET WIN1252,
"OPCAO" INTEGER,
"PUBLICO" INTEGER,
"LOGIN" VARCHAR(10) CHARACTER SET WIN1252,
"QUEM" VARCHAR(10) CHARACTER SET WIN1252
)
AS
BEGIN EXIT; END
^
Onde estou errando?
#Código
SQL.Clear;
SQL.Add(
'ALTER PROCEDURE RETORNACOMPROMISSOS '+
'( '+
' TIPO_PESSOA_PF INTEGER, '+
' TIPO_PESSOA_PJ INTEGER, '+
' TIPO_PESSOA_C_PJ INTEGER, '+
' TEXTO_ VARCHAR(100) CHARACTER SET WIN1252, '+
' NOME VARCHAR(100) CHARACTER SET WIN1252, '+
' DATA_01 DATE, '+
' DATA_02 DATE, '+
' OPCAO_01 INTEGER, '+
' OPCAO_02 INTEGER, '+
' OPCAO_03 INTEGER '+
') '+
'RETURNS '+
'( '+
' IDENTIFICADOR" INTEGER, '+
' DATA DATE, '+
' HORA TIME, '+
' TEXTO VARCHAR(30000) CHARACTER SET WIN1252, '+
' OPCAO INTEGER, '+
' PUBLICO INTEGER, '+
' LOGIN VARCHAR(10) CHARACTER SET WIN1252, '+
' QUEM VARCHAR(10) CHARACTER SET WIN1252 '+
') '+
'AS '+
'BEGIN '+
'FOR '+
'SELECT C.IDENTIFICADOR, C.DATA, C.HORA, C.TEXTO, C.OPCAO, C.PUBLICO, C.LOGIN, C.QUEM FROM COMPROMISSO C '+
'LEFT JOIN PESS0A_COMPROMISSO PC ON PC.ID_COMPROMISSO = C.IDENTIFICADOR '+
'LEFT JOIN PESSOAFISICA PF ON PF.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_PF '+
'LEFT JOIN PESSOAJURIDICA PJ ON PJ.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_PJ '+
'LEFT JOIN CONTATO_PJ C_PJ ON C_PJ.IDENTIFICADOR = PC.ID_PESSOA AND PC.TIPO_PESSOA = :TIPO_PESSOA_C_PJ '+
'WHERE '+
'C.DATA BETWEEN :DATA_01 AND :DATA_02 AND '+
'COALESCE(C.TEXTO,'') CONTAINING :TEXTO_ AND '+
'COALESCE(PJ.NOME,'')||COALESCE(PF.NOME,'')||COALESCE(C_PJ.NOME,'') CONTAINING :NOME AND '+
'C.OPCAO IN (:OPCAO_01, :OPCAO_02, :OPCAO_03) '+
'INTO :IDENTIFICADOR, :DATA, :HORA, :TEXTO, :OPCAO, :PUBLICO, :LOGIN, :QUEM '+
'DO '+
'SUSPEND; '+
'END;');
EXECSQL;
Transacao.CommitRetaining;
Ocorre que após a execução do mesmo... vou no IBConsole ver o metadados gerado aparece assim:
#Código
ALTER PROCEDURE "RETORNACOMPROMISSOS"
(
"TIPO_PESSOA_PF" INTEGER,
"TIPO_PESSOA_PJ" INTEGER,
"TIPO_PESSOA_C_PJ" INTEGER,
"TEXTO_" VARCHAR(100) CHARACTER SET WIN1252,
"NOME" VARCHAR(100) CHARACTER SET WIN1252,
"DATA_01" DATE,
"DATA_02" DATE,
"OPCAO_01" INTEGER,
"OPCAO_02" INTEGER,
"OPCAO_03" INTEGER
)
RETURNS
(
"IDENTIFICADOR" INTEGER,
"DATA" DATE,
"HORA" TIME,
"TEXTO" VARCHAR(30000) CHARACTER SET WIN1252,
"OPCAO" INTEGER,
"PUBLICO" INTEGER,
"LOGIN" VARCHAR(10) CHARACTER SET WIN1252,
"QUEM" VARCHAR(10) CHARACTER SET WIN1252
)
AS
BEGIN EXIT; END
^
Onde estou errando?
Carlos Phelippe
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)