13 Replies Latest reply: Jul 28, 2016 12:17 PM by Clever Anjos RSS

    Update sql server (Tabela de Preços)

    Agnaldo Neves

      Bom dia Senhores,

      Tenho um tabela de preços, e

      Gostaria de saber ser é possível atualizar o preço através de macro.

      Variável x Preço_Custo =

      Atualizar Preços

       

      Tem como?

       

       

      2016-03-04_10-00-21.png

        • Re: Update sql server (Tabela de Preços)
          Yuri Nicolett

          Agnald, neste post tem um exemplo de como fazer manipular dados no SQL através do próprio SCript ou Macros.

           

          SQL Insert from QlikView.qvw

            • Re: Update sql server (Tabela de Preços)
              Agnaldo Neves

              Bom entendi, como funciona.

               

              Mas precisava fazer update e não estou sabendo.

              Eu só preciso atualizar um campo chamado Preco.

              Ele será, atualizado, caso vPreco seja maior > que 0

               

              Depois também tem a macro.

              Caso tenha uma luz.

              Tem o  exemplo anexo.

               

               

              sum({<[Ordem_Tabela_Preco]={'2'} >}Preco) * vPreco


              Tabela:


              OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Real;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=DESKTOP-F42VGP2;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is SeFWeJVMODaCWYIGTJWA);


              SQL

              INSERT INTO [dbo].[Prod_Serv_Precos]

                    

                         ([Preco]

                    

                   VALUES

                         ('$(Preco)';



                • Re: Update sql server (Tabela de Preços)
                  Yuri Nicolett

                  Se você quer jogar os valores da sua tabela dentro do banco, então creio que tenha que fazer via macro mesmo. Dentro da macro você faz a verificação do valor de sua variável.

                   

                  Por exemplo:

                   

                  set Preco = ActiveDocument.Variables("vPreco")

                   

                  if Preco > 0 then

                   

                  ......

                   

                  end if

                   

                   

                  Em relação ao update, é questão de verificar a sintaxe e trocar para o update.

                   

                  Se seus valores que deverão ser atualizados estão no objeto de tabela, então precisa usar essa macro para conseguir ler os valores:

                   

                  Sub ReadStraightTable

                  Set Table = ActiveDocument.GetSheetObject( "CH01" )
                  For RowIter = 0 to table.GetRowCount-1
                     For ColIter = 0 to table.GetColumnCount-1
                          set cell = table.GetCell(RowIter,ColIter)
                          Msgbox(cell.Text)
                      Next
                  Next

                  End Sub

                    • Re: Update sql server (Tabela de Preços)
                      Agnaldo Neves

                      Yuri,

                      A tabela será sempre de atualização

                      Pois a Tabela é um complemento do cadastro de produtos.

                      A Tabela não receberá update de registro(novos registros), mas apenas atualização.

                       

                       

                       

                       

                      Exemplo: produto 499 acima

                      Preço Atual : 0,02

                      Preço varíavel:  0,1

                       

                      O Campo Ordem_Produto será chave primária para a (atualização)

                      O Campo Preco Será o campo a ser atualizado.

                       

                      Estes campos acima estão no exemplo acima no anexo.

                    • Re: Update sql server (Tabela de Preços)
                      Agnaldo Neves

                      Alessandro vou testar,

                      Estou vendo também a maneira do Yuri.

                      Estou com pouco de dificuldades.

                      Vou ver até onde eu chego.

                      Obrigado.

                  • Re: Update sql server (Tabela de Preços)
                    Alessandro Furtado

                    Agnaldo,

                     

                    segue um modelo que fiz a um tempo atras.....estou sem SQL agora mas sei que funcionava...

                     

                    este tipo de rotina chama-se   writeback

                     

                    Tem este produto no market da Qlik

                     

                    http://market.qlik.com/writeback-extension-installer.html

                     

                    e tem este tambem

                     

                    SQL Writeback from QlikView extension object.

                      • Re: Update sql server (Tabela de Preços)
                        Agnaldo Neves

                        Yuri, Alessandro.

                        Realmente eu tentei e até estudei aquilo que você me passaram

                        Mas eu precisava de um norte dentro de meu exemplo acima.

                        Sei que você não tem sql. Mas precisava apenas de um exemplo, como o meu exemplo.

                        Acredito que a maneira do Yuri seja a mais simples. Mas não sei como implementar no meu exemplo:

                        Nunca usei o qlik para fazer update em banco sql server.

                         

                         

                        Conexão com o Banco:

                        OLEDB CONNECT32 TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=S9_Real;Data Source=localhost\shopcontrol9;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=CONSULTORIASOFT;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is LVBVbJVMODaCWYIGTBcA);

                         

                        Tabela e o campo a qual terá a atualização:

                        SQL

                        update INTO [dbo].[Prod_Serv_Precos]

                                   ([Preco]

                                   )

                             VALUES

                                   '$(Preco));

                         

                        O que vai atualizar:

                        sum({<[Ordem_Tabela_Preco]={'2'} >}Preco) * vPreco

                        //Pega Tabela de Preços Custo e multiplicar pela varíavel

                         

                         

                         

                         

                        ++++++++++++++++++++++++++++++++++++++++++++++++

                        A estrutura da tabela de preços que está no exemplo anexo acima:

                        Tabela_Preco_Estrutura:     

                                  

                             LOAD Ordem,

                            "Ordem_Prod_Serv",

                            "Ordem_Tabela_Preco",

                            Preco,

                            Inativo,

                            "Data_Alteracao",

                            "Ordem_Funcionario_Alteracao",

                            Validacao,

                            "Valida_P2";

                        SQL SELECT *

                        FROM "S9_Real".dbo."Prod_Serv_Precos";

                      • Re: Update sql server (Tabela de Preços)
                        Clever Anjos

                        Já achou uma solução? Se alguma resposta foi a correta, marque como "Correta" para fechar o tópico e nos ajudar a manter o forum organizado.

                        Como obter ajuda? Leia antes de postar