quarta-feira, 30 de janeiro de 2013

SQL Server - como dar grant em todas as Procedures e Tabelas e SQL Profiler

Para gerar o script de grant de todas as tabelas e todas as procedures para um determinado usuário, utilize o exemplo abaixo, que irá retornar o script pronto para ser executado.

Mais abaixo, o script para dar grant create para o usuário, e grant para rodar o SQL Profiler.


--creating the script to grant in all tables
use [databasename]
go

SELECT 'GRANT SELECT, INSERT, UPDATE, DELETE ON ' + NAME + ' TO ' + '[Domain\Username]'
  FROM SYSOBJECTS
WHERE TYPE = 'U'
  AND CATEGORY <> 2  -ignore system tables
ORDER BY NAME

Copie as linhas retornadas no select e execute


 

-- creating script to grant in all procedures
use [databasename]
go

declare @sql nvarchar(4000)
declare @db  sysname ; set @db = DB_NAME()
declare @u   sysname ; set @u = QUOTENAME('Domain\Username')
-- or -- declare @u   sysname ; set @u = QUOTENAME('username')
select 'grant exec on ' + QUOTENAME(ROUTINE_SCHEMA) + '.' +
QUOTENAME(ROUTINE_NAME) + ' TO ' + @u 
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'


Copie as linhas retornadas no select e execute


--grant create procedure
grant create procedure to [Domain\Username]


--grant to run SQL Profiler
grant alter trace to [Domain\User]




 

quarta-feira, 23 de janeiro de 2013

Rave Report - Como incluir totalizador de valores (Delphi 7)

VOU ADICIONAR AS IMAGENS POSTERIORMENTE.


Existem duas formas de incluir um totalizador de valores:

·         uma, a mais simples, é utilizando o CalcTextComponent

·         a outra, mais complexa, é utilizando o CalcComponent + Parâmetro + DataText .

O CalcTextComponent é mais simples de usar. Eu o descobri quando eu tentei adicionar um novo CalcComponent  no meu relatório e não funcionou. Na verdade, ele totalizava, mas não zerava o contador a cada novo agrupamento.


Utilizando o CalcTextComponent



Primeiro, devemos inserir uma Band totalizar os valores de um DataBand.

·         Acesse a aba Report

·         Clique no ícone do Band Component

·         Clique na Region do seu relatório para adicioná-lo.

·         Ele ficará posicionado embaixo das outras Bands. Se quiser mudar sua posição, clique nele com o botão direito e clique em  Order\Move Behind;

·         Clique na Band e defina um nome para ela, clicando na Propriedade Name no lado esquerdo da tela. Ex. Footer







Agora, vamos inserir o componente que irá calcular o total:

·         Acesse a aba Report;

·         Clique no ícone do cinza CalcTextComponent;

·         Clique na Band onde quer  ele seja mostrado no seu relatório (a Band inserida acima)

·         Clique no item adicionado e altere as seguintes propriedades:

o   CalcType: ctSum (para somar)

o   Controler: qual é o DataBand que exibe os valores que você deseja totalizar.

o   DataView: qual é o dataset que possui o campo que você deseja totalizar

o   DataField: qual campo você deseja totalizar

o   DisplayFormat: defina o formato em que o valor deve ser exibido

o   Fonte:  formatação para exibição

o   Name: defina um nome para o componente, para facilitar uma futura manutenção

o   Running Total:

§  FALSE – indica que ele ira zerar o totalizador após sair da Band atual.

§  TRUE – indica que ele irá acumular o valor

Como estamos criando um sub-total, vamos selecionar a opção FALSE.

Se quiser  criar um Total Geral, selecione TRUE.





Pronto. Agora é só salvar e executar o relatório.




Utilizando o CalcTotalComponent (opção mais complexa)



Primeiro, vamos inserir uma Parameter, que nada mais é que uma variável que irá acumular o total).

·         Clique no seu relatório (report componente)

·         Localize a propriedade Parameter do lado esquerdo da tela;

·         Clique no botão com três pontos [...]

·         Na tela Strings Editor, defina um nome para o seu parâmetro e clique em OK.




Em seguida, devemos inserir uma Band totalizar os valores de um DataBand.

·         Acesse a aba Report

·         Clique no ícone do Band Component

·         Clique na Region do seu relatório para adicioná-lo.

·         Ele ficará posicionado embaixo das outras Bands. Se quiser mudar sua posição, clique nele com o botão direito e clique em  Order\Move Behind;

·         Clique na Band e defina um nome para ela, clicando na Propriedade Name no lado esquerdo da tela. Ex. Footer



Agora, vamos inserir o componente que irá calcular o total:

·         Acesse a aba Report;

·         Clique no ícone verde CalcTotalComponent;

·         Clique na Band onde quer ele ele seja mostrado no seu relatório (a Band inserida acima);

·         Clique no item adicionado e altere as seguintes propriedades no lado esquerdo da tela:

o   CalcType: ctSum (para somar)

o   Controler: qual é o DataBand que exibe os valores que você deseja totalizar.

o   DataView: qual é o dataset que possui o campo que você deseja totalizar

o   DataField: qual campo você deseja totalizar

o   Destparam: é o parâmetro que receberá o valor totalizado (selecione o parâmetro cadastrado na etapa acima);

o   DisplayFormat: defina o formato em que o valor deve ser exibido

o   Fonte:  formatação para exibição

o   Name: defina um nome para o componente, para facilitar uma futura manutenção

o   Running Total:

§  FALSE – indica que ele ira zerar o totalizador após sair da Band atual.

§  TRUE – indica que ele irá acumular o valor

Como estamos criando um sub-total, vamos selecionar a opção FALSE.

Se quiser criar  um Total Geral, selecione TRUE.

 




Por último, vamos inserir o componente que vai exibir o valor calculado pelo CalcTotalComponent e armazenado no parâmetro (variável) do relatório.


·         Acesse a aba Report;

·         Clique no ícone cinza DataText;

·          Clique na Band onde quer ele ele seja mostrado no seu relatório (a Band na primeira etapa);

·         Clique no item adicionado  e altere as seguintes propriedades no lado esquerdo da tela:

o   DataField: selecione o parâmetro que possui o total acumulado.

§  Clique no botão com três pontos [...]

§  No painel Project Parameters, localize o parâmetro que foi cadastrado e clique no botão Insert Parameter

§  Clique em OK;






Pronto. Agora é só salvar e executar o relatório.


Caso tenha problemas na totalização com o CalcTotalComponent , utilize o CalcTextComponent.