× Linguagem de Programação ADVPL

Perguntas Insert no Banco como fazer ???

Mais
11 anos 6 meses atrás #14247 por mbrigagao
Bom dia pessoal,

Não conheço muito de SQL por isso peço a ajuda de vocês.

Preciso copiar os dados da tabela SG1 para a SGG, pra isso estou pensando em montar uma query para fazer isso, mas não tenho a menor ideia de como fazer.

Alguém poderia me dar uma luz ?

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14263 por henry.charriere
Marcelo,

não sei se é a melhor solução, mas de forma rápida faria com um cursor...

ex;



DECLARE @Z03_DATA VARCHAR(8), @Z03_RACAO VARCHAR(30), @Z03_BATIDA AS INT, @Z03_BATIDA_DIARIA AS INT, @Z03_PESO AS FLOAT, @R_E_C_N_O_ AS INT

DELETE FROM Z02010

DECLARE SOMAI_BATIDA CURSOR STATIC
FOR
SELECT CONVERT(VARCHAR, E3TIMESTAMP, 112), [Descricao], [Batida], [Batida_Diaria], [KG_Total] FROM FabricaRacao.dbo.Batidas
WHERE ISNULL(Automatico_Manual_Quality,192) <> 1 AND CONVERT(VARCHAR, E3TIMESTAMP, 112) BETWEEN @DATAI AND @DATAF

OPEN SOMAI_BATIDA
WHILE 1 = 1
BEGIN
FETCH NEXT FROM SOMAI_BATIDA
INTO @Z03_DATA, @Z03_RACAO, @Z03_BATIDA, @Z03_BATIDA_DIARIA, @Z03_PESO
IF @@FETCH_STATUS <> 0
BEGIN
CLOSE SOMAI_BATIDA
DEALLOCATE SOMAI_BATIDA
BREAK
END

SELECT @R_E_C_N_O_ = ISNULL((SELECT MAX(R_E_C_N_O_) FROM Z02010),0)
SET @R_E_C_N_O_ = @R_E_C_N_O_ + 1

PRINT @R_E_C_N_O_

INSERT INTO [Z02010]([Z02_RACAO],[Z02_DATA],[Z02_BATIDA],[Z02_BATDIA] ,[Z02_PESO] ,[Z02_ORDEM],[R_E_C_N_O_])
VALUES (@Z03_RACAO, @Z03_DATA ,@Z03_BATIDA ,@Z03_BATIDA_DIARIA,@Z03_PESO,@R_E_C_N_O_ ,@R_E_C_N_O_ )

END

SET @OUT_RETURN = 0
SET @MSG_RETURN = 'OK'












GO

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14264 por limafalcao
Respondido por limafalcao no tópico Insert no Banco como fazer ???
Se o Protheus tiver funcionando, use o APSDU, Pode copiar os dados gerando um DBF e depois um Append pra tabela nova

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14265 por mbrigagao
Respondido por mbrigagao no tópico Insert no Banco como fazer ???
José Fernando,

Não é possivel fazer via SDU, pois os nomes dos campos são diferentes, por exemplo:
G1_COD e GG_COD , ambos se referem ao codigo do produto;

Valeu

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14266 por mbrigagao
Respondido por mbrigagao no tópico Insert no Banco como fazer ???
Henry,

Obrigado pela informação... mas infelizmente não entendi nada ... rsrsrs
Como falei anteriormente não tenho muito conhecimento no SQL.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14268 por henry.charriere
Brother, não tem segredo!

Vamos lá.

--Aqui vc vai declarar as varias da tabela sg1, igual tem no banco mesmo tipo e tal.....
DECLARE @Z03_DATA VARCHAR(08), @Z03_RACAO VARCHAR(30), @Z03_BATIDA AS INT, @Z03_BATIDA_DIARIA AS INT, @Z03_PESO AS FLOAT, @R_E_C_N_O_ AS INT

--Aqui estou declarando o cursos
DECLARE SOMAI_BATIDA CURSOR STATIC
FOR

--Aqui vc vai fazer o select na sg1 pegando os campos que vc quer...
SELECT CONVERT(VARCHAR, E3TIMESTAMP, 112), [Descricao], [Batida], [Batida_Diaria], [KG_Total] FROM FabricaRacao.dbo.Batidas
WHERE ISNULL(Automatico_Manual_Quality,192) <> 1 AND CONVERT(VARCHAR, E3TIMESTAMP, 112) BETWEEN @DATAI AND @DATAF

OPEN SOMAI_BATIDA
WHILE 1 = 1
BEGIN
FETCH NEXT FROM SOMAI_BATIDA
--aqui vc vai colocar os campos que vc declarou lá em cima, tem que conhecidir com os mesmo campos do select, mesma ordem
INTO @Z03_DATA, @Z03_RACAO, @Z03_BATIDA, @Z03_BATIDA_DIARIA, @Z03_PESO
IF @@FETCH_STATUS <> 0
BEGIN
CLOSE SOMAI_BATIDA
DEALLOCATE SOMAI_BATIDA
BREAK
END

--estamos fazendo isso para sempre incrementar o recno
SELECT @R_E_C_N_O_ = ISNULL((SELECT MAX(R_E_C_N_O_) FROM Z02010),0)
SET @R_E_C_N_O_ = @R_E_C_N_O_ + 1


--aqui vc vai colocar sua tabela sgg
--coloque os campos que vc vai inserir na mesma ordem do select exemplo
INSERT INTO [SGG]([CAMPO1],[CAMPOS2],[CAMPO3], R_E_C_N_O_ )
VALUES (@CAMPO1, @CAMPO2 ,@CAMPO3 @R_E_C_N_O_ )

--QUALQUER COISA GRIDA AI QUE A GENTE AJUDA

END

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.134 segundos
Joomla templates by a4joomla