Inquiridor
aplicação de consulta

Pergunta
-
pessoal,
preciso criar uma aplicação para realizar consulta a uma tabela no meu bd.
eu criei uma SP com o select das informações que para esta consulta.
ai pensei em criar pelo bat mesmo já que é um arquivo que vou disponibilizar para uma pessoa especifica da empresa
o que eu consegui ate agora é fazer o login com usuario e senha,
mais preciso linkar a busca, ja vi os docs da microsoft e e me ajudou um pouco, mais preciso de uma orientação.
até agora meu script está assim:
:LOGIN set usuario= set /p usuario=Digite o Usuario: @echo off IF "%usuario%"=="" (goto erroLogin)ELSE (goto Senha) :Senha set senha= set /p senha=Digite a Senha: @echo off IF "%senha%"=="" (goto erroLogin) ELSE (goto consulta) :erroLogin echo. echo. echo Preencha os dados corretamente echo. pause goto LOGIN :consulta set idcliente= set /p idcliente=Digite ID do cliente: @echo off IF "%idcliente%"=="" (goto erroLogin) ELSE (goto executar) %idcliente% goto executar :executar echo. echo. echo ---------------------------------------------------------- sqlcmd -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASES_01 -i P:\CONSULTA.sql pause
Eu nao estou conseguindo linkar o IDcliente o script CONSULTA é esse:
@IDCLIENTE AS FLOAT AS select DATA_CADASTRO ,PRIMEIRO_PAGAMENTO ,ULTIMO_PAGAMENTO ,CPF ,NOME ,CONTRATO FROM TB_06_JUNHO_D8 WHERE CPF=@IDCLIENTE
Todas as Respostas
-
-
pessoal,
preciso criar uma aplicação para realizar consulta a uma tabela no meu bd.
eu criei uma SP com o select das informações que para esta consulta.
ai pensei em criar pelo bat mesmo já que é um arquivo que vou disponibilizar para uma pessoa especifica da empresa
o que eu consegui ate agora é fazer o login com usuario e senha,
mais preciso linkar a busca, ja vi os docs da microsoft e e me ajudou um pouco, mais preciso de uma orientação.
até agora meu script está assim:
:LOGIN set usuario= set /p usuario=Digite o Usuario: @echo off IF "%usuario%"=="" (goto erroLogin)ELSE (goto Senha) :Senha set senha= set /p senha=Digite a Senha: @echo off IF "%senha%"=="" (goto erroLogin) ELSE (goto consulta) :erroLogin echo. echo. echo Preencha os dados corretamente echo. pause goto LOGIN :consulta set idcliente= set /p idcliente=Digite ID do cliente: @echo off IF "%idcliente%"=="" (goto erroLogin) ELSE (goto executar) %idcliente% goto executar :executar echo. echo. echo ---------------------------------------------------------- sqlcmd -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASES_01 -i P:\CONSULTA.sql pause
Eu nao estou conseguindo linkar o IDcliente o script CONSULTA é esse:
@IDCLIENTE AS FLOAT AS select DATA_CADASTRO ,PRIMEIRO_PAGAMENTO ,ULTIMO_PAGAMENTO ,CPF ,NOME ,CONTRATO FROM TB_06_JUNHO_D8 WHERE CPF=@IDCLIENTE
Djacy,
Este linha de código: @IDCLIENTE AS FLOAT se refere a declaração de uma variável.
Mas esse declaração esta sem feita diretamente na sua query ou através do arquivo .bat?
Se for no botão como já seguirido utilize o comando Setvar, caso seja diretamente na query processada pelo SQL Server, utilize o comando Declare antes do nome da variável.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
eu vi isso, depois que mandei aqui, eu ajustei o arquivo da consulta e tambem vi o que o AVATAR SQL mandou.
o comando do sqlcmd ficou
sqlcmd -v %idcliente% = @idcliente -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql
E o arquivo consulta assim:
declare @IDCLIENTE AS FLOAT go select DATA_CADASTRO ,PRIMEIRO_PAGAMENTO ,ULTIMO_PAGAMENTO ,CPF ,NOME ,CONTRATO FROM TB_06_JUNHO_D8 WHERE CPF=@IDCLIENTE
-
Djacy,
Acredito que o problema seja um pequeno ajusto na sua query, veja se um dos exemplos abaixo poderá lhe ajudar:
-- Antes -- sqlcmd -v %idcliente% = @idcliente -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql Go -- Depois -- Set @idCliente=%1 -- tenta acrescentar a diretiva Set -- sqlcmd -v %@idcliente%=@idcliente -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql Go --------------------------- Ou assim -------------------- -- Antes -- sqlcmd -v %idcliente% = @idcliente -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql -- Depois -- :Setvar @idCliente 1 sqlcmd -v %@idcliente%=@idcliente -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql Go
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
Djacy,
Veja se estas alterações podem lhe ajudar:
sqlcmd -SDSK-AKRK-9822\SQLEXPRESS -U%usuario% -P%senha% -dBASE_CLIENTES -v Variavel=%@idcliente% -i P:\CONSULTA.sql Go
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
eu consegui invertendo:
sqlcmd -v @idcliente=%idcliente% -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql
mas, o resultado ainda nao esta bom, eu vou precisar ver como faz p alinhar...
porque o resultado ta todo bagunçado
- Editado Djacy terça-feira, 14 de julho de 2020 19:49 anexo imagem
-
eu consegui invertendo:
sqlcmd -v @idcliente=%idcliente% -S DSK-AKRK-9822\SQLEXPRESS -U %usuario% -P %senha% -d BASE_CLIENTES -i P:\CONSULTA.sql
mas, o resultado ainda nao esta bom, eu vou precisar ver como faz p alinhar...
porque o resultado ta todo bagunçado
Djacy,
Isso, primeiro você declara na linha a variável e depois o elemento que representa a passagem de valores.
Mas vamos com calma, o resultado apresentado pelo SQLCMD é desta forma mesmo, este é o padrão de retorno em tela.
Você tem que verificar a query que esta sendo utilizado como parâmetro de entrada dos dados.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]