quinta-feira, 16 de outubro de 2008

SSAS porta default

Amigos,

Instalando uma solução de BI num determinado cliente, me deparei com um problema para acessar os dados dos cubos através do MS Excel. A infra do cliente bloqueou algumas portas e, até o momento, não sabia qual porta deveria ser liberada para poder acessar os cubos corretamente.
Fazendo uma pesquisa pela web, localizei a informação, e aqui estão 3 dos links mais interessantes que eu achei:

Ms TechNet
http://www.microsoft.com/technet/prodtechnol/sql/2005/ssasproperties.mspx
http://www.ssas-info.com/analysis-services-faq/29-mgmt/75-what-tcp-port-ssas-2005-uses

http://www.ssas-info.com/analysis-services-faq/36-excel/98-how-to-disable-excel-pivot-table-security-warning-data-connections-have-been-disabled-enable-this-content
Este último na verdade trata de outra questão de segurança no Excel, mas vai no bolo! ;-)

Então, a porta default do SSAS é a 2383, e esta deve ser usada pois cada named instance no SSAS gera uma porta dinâmica.

[]'s

domingo, 14 de setembro de 2008

Erro em cubos do SSAS depois de instalar o Source Safe

Nos deparamos aqui com um problema de não conseguir editar os membros calculados de um cubo depois de instalar o Source Safe. Meu colega Ricardo Ramos conseguiu achar uma solução:

Analysis Services - Error Calculations
Unexpected error ocurred:

This error is caused because an installation of the Office 2007 overwrites two particular files that are used by SSAS 2005:
- msmdlocal.dll
- msmgdsrv.dll
So the solution is to copy this two files from:
%programfiles%\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\
to:
%programfiles%\Common Files\System\Ole DB\

Só jogar esses arquivos na pasta citada e boa!

quinta-feira, 11 de setembro de 2008

Insert into

Um código simples e interessante para inserir somente registros únicos a partir de uma outra tabela de-para que é usada para comparar se o registro já foi inserido:

INSERT INTO TBDPPECA
(ID_PECA, CODFABRICANTE, NUM_MOL, DTPROCESSAMENTO)
(SELECT ID_PECA, NUM_CODFABRICANTE, NUM_MOL,CONVERT(VARCHAR(10), GETDATE(), 120) + ' 00:00:00'
FROM DIMPECA
WHERE ID_PECA >
CASE
WHEN (SELECT MAX(ID_PECA) FROM TBDPPECA) IS NULL THEN 0
ELSE (SELECT MAX(ID_PECA) FROM TBDPPECA)
END
)


Mais um update from:

UPDATE tbprod SET
ind_cestabasica = 'S'
FROM
tbcestabasica cb, tbprod p
where
cb.num_prod = p.num_prod

Lendo caracteres de uma string simulando um split com T-Sql

Este código simula um split, mas para um caso específico que eu enfrentei, onde precisava quebrar uma string em várias, mas sabia que sempre seria preenchida desta forma: '97 98 99 00'. Precisava pegar os dois caracteres quebrando pelo espaço.
Dá pra fazer isso mais dinamicamente, usando CharIndex por exemplo, fica ao gosto do freguês:

/*
Simulando Split
*/

print 'Segunda versão'
declare @stPos int
declare @size int
declare @var varchar(100)
set @var = '97 98 99 00'
set @size = len(@var)
set @stPos = 1
while @size > 0
begin
print substring(@var, @stPos, 2)
set @stPos = @stPos + 3
set @size = @size - 3
end

terça-feira, 9 de setembro de 2008

Usando GetDate() para retornar somente a data


SELECT CAST(CONVERT(VARCHAR(10), GETDATE(), 120) AS SMALLDATETIME)

Melhor que usar concatenação:

select CONVERT(VARCHAR(10), GetDate(), 120) + ' 00:00:00'

Verificando o código para configuração da data.

quinta-feira, 28 de agosto de 2008

Update From

Precisei fazer um update a partir de uma outra tabela e apanhei um bocado tentando lembrar a sintaxe, até que achei esse exemplinho aí embaixo.
Tá, é uma coisa meio besta, mas como não uso isso direto esqueci mesmo, por isso postei aqui.

Fonte: http://archives.postgresql.org/pgsql-es-ayuda/2004-05/msg00230.php

UPDATE product SET
pro_pdetalle = ss.detalle,
pro_pdocena = ss.precioma2,
pro_pmayorista = ss.precioma1,
pro_prevendedor = ss.preciorev
FROM precios ss, product f
where precios.procode = f.pro_code

terça-feira, 17 de junho de 2008

Analysis Services error

Amigos, tudo certo?
Estou tentando fazer um deploy em um aplicativo de exemplo do VS2005 (BI), mas estou com o seguinte erro:

Error 1 Errors related to feature availability and configuration: Exceeded the maximum number of partitions in a measure group. The installed server editions allows not more than 3 partitions and not more than 1 writeback partition. Errors in the metadata manager. An error occurred when loading the Internet Sales measure group, from the file, '\\?\C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\Data\Adventure Works DW.0.db\Adventure Works DW.0.cub\Fact Internet Sales 1.2.det.xml'. Errors in the metadata manager. An error occurred when loading the Adventure Works cube, from the file, '\\?\C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\Data\Adventure Works DW.0.db\Adventure Works DW.2.cub.xml'.

Alguém tem uma luz?

sexta-feira, 16 de maio de 2008

Genesis

Depois de muita relutância, eu finalmente assumo um blog.
Meus planos aqui são de postagens de diversos assuntos de meu interesse, com ênfase especial à informática.

Grande abraço a todos, fiquem com Deus!