- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Criando stored procedure no ADVPL.
×
Linguagem de Programação ADVPL
Perguntas Criando stored procedure no ADVPL.
- marciosk
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19338
por marciosk
Criando stored procedure no ADVPL. foi criado por marciosk
Olá pessoal. Estou tentando criar uma Stored Procedure de dentro do meu código ADVPL, porém, sem sucesso. Alguém pode me dar uma ajuda? Segue abaixo o codigo em que eu tento criar. Acho que é a Stored Procedure que está errada.
cQuery := "Create Procedure ENTRADA_DE_MERCADORIAS_NOVAS "
cQuery := cQuery + "(@DATA_INICIAL datetime, "
cQuery := cQuery + "@DATA_FINAL datetime, "
cQuery := cQuery + "@B1_TABELA char(6), "
cQuery := cQuery + "@D1_TABELA char(6))"
cQuery := cQuery + " AS "
cQuery := cQuery + "IF EXISTS(SELECT 1 FROM sysobjects WHERE xtype = 'U' AND name = '_TMP_ENT_NOVAS') "
cQuery := cQuery + "DROP TABLE _TMP_ENT_NOVAS "
cQuery := cQuery + "Select distinct D1_COD,SUM(D1_QUANT)D1_QUANT "
cQuery := cQuery + "INTO _TMP_ENT_NOVAS "
cQuery := cQuery + "Select distinct B1_COD, B1_DESC, B1_TIPO, B1_POSIPI, (SELECT SUM(D1_QUANT)D1_QUANT FROM @D1_TABELA WHERE D1_CF='3102' AND B1_COD=D1_COD)D1_QUANT "
cQuery := cQuery + " INTO _TMP_ENT_NOVAS "
cQuery := cQuery + "From @B1_TABELA, @D1_TABELA "
cQuery := cQuery + "WHERE "
cQuery := cQuery + "B1_COD = D1_COD "
cQuery := cQuery + "AND B1_COD NOT IN(select distinct D1_COD FROM @D1_TABELA WHERE D1_EMISSAO<DATEADD(DAY,-1,@DATA_INICIAL)AND D1_CF ='3102') "
cQuery := cQuery + "AND D1_EMISSAO BETWEEN @DATA_INICIAL and @DATA_FINAL "
cQuery := cQuery + "AND B1_TIPO = 'ME' "
cQuery := cQuery + "AND D1_FILIAL = '01' "
cQuery := cQuery + "GROUP BY B1_COD, B1_DESC, B1_TIPO, B1_POSIPI, D1_QUANT "
cQuery := cQuery + "SELECT B1_COD, B1_DESC, B1_TIPO, B1_POSIPI,D1_QUANT FROM ENTRADA_DE_MERCADORIAS_NOVAS "
if(TcSqlExec(cQuery)<0 )
MsgAlert("Fail")
else
MsgAlert("OK")
endif
cQuery := "Create Procedure ENTRADA_DE_MERCADORIAS_NOVAS "
cQuery := cQuery + "(@DATA_INICIAL datetime, "
cQuery := cQuery + "@DATA_FINAL datetime, "
cQuery := cQuery + "@B1_TABELA char(6), "
cQuery := cQuery + "@D1_TABELA char(6))"
cQuery := cQuery + " AS "
cQuery := cQuery + "IF EXISTS(SELECT 1 FROM sysobjects WHERE xtype = 'U' AND name = '_TMP_ENT_NOVAS') "
cQuery := cQuery + "DROP TABLE _TMP_ENT_NOVAS "
cQuery := cQuery + "Select distinct D1_COD,SUM(D1_QUANT)D1_QUANT "
cQuery := cQuery + "INTO _TMP_ENT_NOVAS "
cQuery := cQuery + "Select distinct B1_COD, B1_DESC, B1_TIPO, B1_POSIPI, (SELECT SUM(D1_QUANT)D1_QUANT FROM @D1_TABELA WHERE D1_CF='3102' AND B1_COD=D1_COD)D1_QUANT "
cQuery := cQuery + " INTO _TMP_ENT_NOVAS "
cQuery := cQuery + "From @B1_TABELA, @D1_TABELA "
cQuery := cQuery + "WHERE "
cQuery := cQuery + "B1_COD = D1_COD "
cQuery := cQuery + "AND B1_COD NOT IN(select distinct D1_COD FROM @D1_TABELA WHERE D1_EMISSAO<DATEADD(DAY,-1,@DATA_INICIAL)AND D1_CF ='3102') "
cQuery := cQuery + "AND D1_EMISSAO BETWEEN @DATA_INICIAL and @DATA_FINAL "
cQuery := cQuery + "AND B1_TIPO = 'ME' "
cQuery := cQuery + "AND D1_FILIAL = '01' "
cQuery := cQuery + "GROUP BY B1_COD, B1_DESC, B1_TIPO, B1_POSIPI, D1_QUANT "
cQuery := cQuery + "SELECT B1_COD, B1_DESC, B1_TIPO, B1_POSIPI,D1_QUANT FROM ENTRADA_DE_MERCADORIAS_NOVAS "
if(TcSqlExec(cQuery)<0 )
MsgAlert("Fail")
else
MsgAlert("OK")
endif
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- henry.charriere
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19401
por henry.charriere
Respondido por henry.charriere no tópico Criando stored procedure no ADVPL.
Marcio, Boa Tarde!
Não sei qual o objetivo da sua procedure, como não vi nenhum update/delete na sua procedure, sugiro que vc faça uma view nessa caso.
Não sei qual o objetivo da sua procedure, como não vi nenhum update/delete na sua procedure, sugiro que vc faça uma view nessa caso.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Criando stored procedure no ADVPL.
Tempo para a criação da página:0.077 segundos