Deve usar as melhores praticas quando estamos a elaborar Stored procedures para evitarmos problemas futuros, vamos ver 1º a sintaxe:
Create Procedure Nametheprocedure
-- Parâmetros input or output ( Variaveis )
As
BEGIN TRY
Begin Transaction
-- Comandos
commit transaction -- Se correr sem erros aplica a transacção na base de dados
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER(), ERROR_MESSAGE()
Rollback -- Em caso erro não aplica a transacção
END CATCH
GO
Em baixo está um exemplo para a abase dados Adventure Works
CREATE PROCEDURE Production.AddProductReview
@ProductID int,
@ReviewerName nvarchar(50),
@EmailAddress nvarchar(50),
@Rating int,
@Comments nvarchar(3850)
as
BEGIN TRY
Begin transaction;
INSERT Production.ProductReview (ProductID, ReviewerName, EmailAddress, Rating, Comments)
VALUES (@ProductID, @ReviewerName, @EmailAddress, @Rating, @Comments)
commit transaction;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER(), ERROR_MESSAGE()
rollback transaction;
END CATCH
GO
-- Test stored procedure with error handling
EXECUTE Production.AddReview 715, 'Doug', 'doug@siteexample.com', 10, 'Great product!'
GO
Temas relacionados :
SP para copiar ficheiros
sexta-feira, 28 de agosto de 2009
domingo, 26 de julho de 2009
15:51
File Under :
SQL,
SQL Truques e Dicas
A manipulação da data no SQL Server, vamos ver na pratica alguns exemplos:
-- Exemplo 1
select getdate()
Esta função retorna a data actual 2009-07-26 14:55:03.210
-- Exemplo 2
select GETDATE()+60
Neste exemplo adicionamos 60 dias a data actual e o resultado é 2009-09-24 14:56:40.210
-- Exemplo 3
select DATEADD(M,2,getdate()) -- M month, y year, d day
A função DateAdd function adiciona neste exemplo meses ou dias,ou anos, a data actual ou outra colocada em variável . Então adicionando 2 meses a data corrente o resultado é 2009-09-26 14:57:48.117
a diferença de resultados entre o exemplo 2 e 3 (2 dias), porque no exemplo 2 adicionamos 60 dias e não 2 meses.
-- Exemplo 4
select DATEDIFF(DAY,(DATEADD(M,2,getdate())),(GETDATE()+60))
Esta função calcula a diferença entre datas e retorna um numero inteiro, usando o exemplo o resultado é -2
-- Exemplo 5
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime
Set @datevar=GETDATE()
select @datevar
Neste exemplo formata-mos a data do tipo dd-mm-aaaa
-- Exemplo 6
select substring((convert(varchar(10),@datevar,127)),1,10)
resultado 2009-07-26
Conversão de tipo de dados de DateTime para varchar(10), usando o parâmetro 127 ( yyyy-mm-dd) que nos indica o formato da data
-- Exemplo 7
select substring((convert(varchar(10),@datevar,103)),1,10)
resultado 26/07/2009
Conversão de tipo de dados de DateTime para varchar(10), usando o parâmetro 103 ( yyyy-mm-dd) que nos indica o formato da data (dd/mm/aaaa)
Mais documentação sobre a função convert em http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx
sexta-feira, 5 de junho de 2009
22:32
File Under :
Database Triggers,
SQL Expressions,
SQL Truques e Dicas
Mais um apontamento nesta rubrica que eu pretendo que seja uma mais valia e como tal acrescente saber. Posto isto, hoje vou-te falar dos Database Triggers estes servem para várias funções referente a auditoria das nossas base de dados em que alteramos as tabelas e necessitamos de colocar numa tabela para efeitos de auditoria. Vou então mostrar-te com um exemplo para evitar que tabelas sejam apagadas ou criadas, atenção é só um exemplo.Use BaseDados
go
Create TRIGGER [DBTR_Teste_Drop_Create]
ON DATABASE
FOR DDL_TABLE_VIEW_EVENTS
AS
DECLARE @data xml
DECLARE @cmd nvarchar(350)
DECLARE @logMsg nvarchar(400)
SET @data = eventdata()
SET @cmd = @data.value
('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'nvarchar(350)')
SET @logMsg = @cmd + ' (' + SYSTEM_USER + ' on ' + HOST_NAME() + ')'
RAISERROR (@logMsg, 10, 1) WITH LOG
-- Para Visualizar o Comando executado
-- select @cmd
-- Aqui não permitimos criar objectos na base de dados (Exemplo: Create Table)
-- pois efectuamos o rollback
if left(@cmd,6)='Create'
rollback
-- Aqui não permitimos apagar objectos na base de dados (Exemplo: drop table)
-- pois efectuamos o rollback
if left(@cmd,4)='drop'
rollback
Nota: podemos criar uma tabela com as variáveis com o tipo indicado e inserir os erros
terça-feira, 21 de abril de 2009
12:23
File Under :
SQL,
SQL Truques e Dicas

Sp para copiar ficheiros muito útil
USE [aspnetdb] -- Replace with your DB
GO
/****** Object: StoredProcedure [dbo].[usp_copiamsg] Script Date: 04/21/2009 09:22:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create procedure [dbo].[usp_copiamsg]
@msg as varchar(200),
@input as varchar(100)
,@retorno as varchar(200) output
as
Begin
declare @drive as varchar(100)
declare @drive_dest as varchar(100)
declare @path as varchar(800)
declare @path_dest as varchar(800)
declare @cmd as varchar(800)
declare @ext as char(3)
set @path_dest='\Dest_Path\'
-- Para Exemplo, não esquecer barra de directorio final
--
set @path='\PROGRA~1\DATA\'
set @drive='c:'
set @drive_dest='d:'
set @cmd='copy '+@drive+@path+@msg+@ext
set @cmd=@cmd+@drive_dest+@path_dest+ltrim(rtrim(@input))+(select cast(day(getdate()) as varchar(2)))
+(select cast(month(getdate()) as varchar(2)))
+(select cast(year(getdate()) as varchar(4)))
+replace((select convert(varchar(8),getdate(),108)),':','')+@ext
-- Para Testar Caminhos e Visualizar
-- select @cmd
exec master..xp_cmdshell @cmd ,no_output
Set @retorno=@drive_dest+@path_dest+ltrim(rtrim(@input))+(select cast(day(getdate()) as varchar(2)))
+(select cast(month(getdate()) as varchar(2)))
+(select cast(year(getdate()) as varchar(4)))
+replace((select convert(varchar(8),getdate(),108)),':','')+@ext
end
segunda-feira, 9 de março de 2009
20:42
File Under :
VISTA Ecrã Preto,
windows vista
Depois de uma analise cuidada verifiquei que existe muitos pedidos, ou leitores que passavam por cá, não obtinham a resposta adequada as suas necessidades, por isso cá vai.
Caros o que se deve fazer quando o Windows Vista fica com o Ecrã preto, de certo instalaram alguma aplicação não compativel com o Vista.
A solução mais rápida é efectuar o restauro do sistema depois de entrar em Modo de Segurança.
Vocês perguntam como ?
Nota Muito Importante:
Os documentos, fotografias e dados de aplicações devem estar salvaguardados através de cópias de segurança.
Caros o que se deve fazer quando o Windows Vista fica com o Ecrã preto, de certo instalaram alguma aplicação não compativel com o Vista.
A solução mais rápida é efectuar o restauro do sistema depois de entrar em Modo de Segurança.
Vocês perguntam como ?
- Desligar o pc e voltar ligar, depois do teste de memória pressionar a tecla F8
- Quando o computador ligar e apresentar no ecrã que esta em Modo de Segurança
- Seleccionar " Restauro do Sistema"

- Escolher o último caso tenha sido muito recentemente, ou escolher outro.
- Depois aguarde enquanto o computador repõe o modo de restauro
- Quando iniciar normalmente, em principio estará resolvido o problema
Nota Muito Importante:
Os documentos, fotografias e dados de aplicações devem estar salvaguardados através de cópias de segurança.
quarta-feira, 4 de março de 2009
14:19
File Under :
Business Objects,
Crystal,
SQL Expressions,
WhilePrintingRecords
Caros como existe muitas pesquisas sobre este tema aqui vai desta vez com imagens

Vamos ver mais de perto

Convert campo Text para varchar

- Soma na formula o campo na 1ª posição e agrupa pelo campo2
Whileprintingrecords;
sum ({tabela1.campo1},{tabela1.campo2})
({file.Qty1}+ {file.Qty2})
clique aqui para visualizar uma ajuda
sum ({tabela1.campo1},{tabela1.campo2})
- Soma dois campos da tabela na formula em baixo
({file.Qty1}+ {file.Qty2})
clique aqui para visualizar uma ajuda
Veja mais ainda em http://ittechblogers.blogspot.com/2008/06/crystal-while-printing-records-e-sql.html
domingo, 18 de janeiro de 2009
17:10
File Under :
Cursor,
SP,
SQL,
SQL Truques e Dicas
Após alguma ausência derivado a diversos acontecimentos profissionais , já reparam que o Blog mudou de nome em virtude do registo do dominio www.ITTechBuZ.com e novo logo.
Este logo transmite a comunicação como grande vertente pilar nas tecnologias de informação com o mundo empresárial e entre todos. Este Blog continua em 2009 a principalmente a publicar para técnicos. Hoje Domingo aproveito para deixar mais um apontamento da rubrica SQL Truques & Dicas com uma SP com um cursor.
Esta sp é para usar para actualizar consumo de horas numa aplicação
--
-- Cria a SP com o nome sp_actualiza_onsite
--
create procedure [dbo].[sp_actualiza_onsite]
as Begin
--
-- Insere Ticket depois de Fechado (Estado 'Closed')
-- Uso um Insert a partir de um Select
--
INSERT INTO [HEAT].[dbo].[Tickets] ([CallId] ,[CallType] ,[CriData] ,[Valor] ,[Saldo] ,[UIDMANUT])
select d.callid,c.calltype,c.closeddate, d.horas_gastas, d.horas_saldo
,d.uidmanut,c.custid
from detail d
inner join calllog c on c.callid=d.callid
inner join subset s on s.callid=c.callid
inner join config cfg on cfg.u_idreg=d.uidmanut
where (c.calltype='Onsite' or c.calltype='Packs') and c.callstatus='Closed' and c.actualiza<>'SIM'
and c.callid not in (select callid from tickets )
--
-- Actualiza contratos com as Horas Gastas
-- Cursor usado para update
--
-- Declaração do Cursor com o nome de cursor_Tickets
-- Select aonde vai correr o cursor
DECLARE Cursor_tickets CURSOR for
SELECT t.CallId,c.custid,t.Valor,t.UIDMANUT
from tickets t
inner join calllog c on c.callid=t.callid
where t.[CallType]='Onsite' and c.actualiza <>'SIM'
--
-- Declaração de Variaveis para passar do Cursor
--
Declare @Callid varchar(8)
declare @custid varchar(50)
declare @valor decimal(17,2)
declare @uidmanut varchar(25)
set @callid=''
set @custid=''
set @valor=0
set @uidmanut=''
Open Cursor_tickets /* abrir o cursor */
fetch next from Cursor_tickets
into @callid,@custid,@valor,@uidmanut
while @@fetch_Status=0
begin
--- Actualização das Horas Gastas
--- select @valor,@custid,@uidmanut (usado para verificação e teste)
update config set horas_gastas=isnull(@valor,0)+(isnull(horas_gastas,0)) ,horas_saldo=isnull(horas_saldo,0)-isnull(@valor,0)
where u_idreg=@uidmanut and custid=@custid
set @callid=''
set @custid=''
set @valor=0
set @uidmanut=''
fetch next from Cursor_Tickets
into @callid,@custid,@valor,@uidmanut
end
close Cursor_tickets
Deallocate Cursor_tickets
--
-- No Final actualiza a tabela de forma a não repetir os registos já processados
--
update calllog set actualiza='SIM' where callid in (select callid from tickets) and actualiza<>'SIM'
end
Este logo transmite a comunicação como grande vertente pilar nas tecnologias de informação com o mundo empresárial e entre todos. Este Blog continua em 2009 a principalmente a publicar para técnicos. Hoje Domingo aproveito para deixar mais um apontamento da rubrica SQL Truques & Dicas com uma SP com um cursor.Esta sp é para usar para actualizar consumo de horas numa aplicação
--
-- Cria a SP com o nome sp_actualiza_onsite
--
create procedure [dbo].[sp_actualiza_onsite]
as Begin
--
-- Insere Ticket depois de Fechado (Estado 'Closed')
-- Uso um Insert a partir de um Select
--
INSERT INTO [HEAT].[dbo].[Tickets] ([CallId] ,[CallType] ,[CriData] ,[Valor] ,[Saldo] ,[UIDMANUT])
select d.callid,c.calltype,c.closeddate, d.horas_gastas, d.horas_saldo
,d.uidmanut,c.custid
from detail d
inner join calllog c on c.callid=d.callid
inner join subset s on s.callid=c.callid
inner join config cfg on cfg.u_idreg=d.uidmanut
where (c.calltype='Onsite' or c.calltype='Packs') and c.callstatus='Closed' and c.actualiza<>'SIM'
and c.callid not in (select callid from tickets )
--
-- Actualiza contratos com as Horas Gastas
-- Cursor usado para update
--
-- Declaração do Cursor com o nome de cursor_Tickets
-- Select aonde vai correr o cursor
DECLARE Cursor_tickets CURSOR for
SELECT t.CallId,c.custid,t.Valor,t.UIDMANUT
from tickets t
inner join calllog c on c.callid=t.callid
where t.[CallType]='Onsite' and c.actualiza <>'SIM'
--
-- Declaração de Variaveis para passar do Cursor
--
Declare @Callid varchar(8)
declare @custid varchar(50)
declare @valor decimal(17,2)
declare @uidmanut varchar(25)
set @callid=''
set @custid=''
set @valor=0
set @uidmanut=''
Open Cursor_tickets /* abrir o cursor */
fetch next from Cursor_tickets
into @callid,@custid,@valor,@uidmanut
while @@fetch_Status=0
begin
--- Actualização das Horas Gastas
--- select @valor,@custid,@uidmanut (usado para verificação e teste)
update config set horas_gastas=isnull(@valor,0)+(isnull(horas_gastas,0)) ,horas_saldo=isnull(horas_saldo,0)-isnull(@valor,0)
where u_idreg=@uidmanut and custid=@custid
set @callid=''
set @custid=''
set @valor=0
set @uidmanut=''
fetch next from Cursor_Tickets
into @callid,@custid,@valor,@uidmanut
end
close Cursor_tickets
Deallocate Cursor_tickets
--
-- No Final actualiza a tabela de forma a não repetir os registos já processados
--
update calllog set actualiza='SIM' where callid in (select callid from tickets) and actualiza<>'SIM'
end
domingo, 21 de dezembro de 2008
terça-feira, 18 de novembro de 2008
15:09
File Under :
SQL,
SQL Truques e Dicas
![]() |
| From It Tech Blogers |
Esta sp cria automaticamente um trigger a correr a partir de um job no SQL Server, dá muito jeito quando necessitamos de alterar a tabela.
Create procedure [dbo].[sp_creates_trigger]
as
begin
declare @texto nvarchar (800 ) -- Declara a variavel texto
set @texto='CREATE TRIGGER [subset_trig] ON [dbo].[Subtable] AFTER INSERT AS BEGIN SET NOCOUNT ON; declare @tfield as varchar(8) set @tfiled = (select id_num from inserted)
update subtable set ufield = @tifield where customer<>''Web'' and id_num=@tfield
END'
-- set the trigger in table subtable for an action After Inserted that updates the table
exec sp_executesql @texto -- executa sp com a variavel texto
end
Esta funcionalidade é muito boa quando necessitamos de garantir que este trigger está presente.
quinta-feira, 6 de novembro de 2008
22:38
File Under :
web 2,
Web Analytics
Hoje não abordar o Microsoft SQL Server, mas sim o Google Analytics, é pena que outras ferramentas potentes do calibre do Google não me possa fornecer acesso a elas por isso, vamos lá falar.
Estou maravilhado com o Google Analytics e as novas opções que são a possibilidade de configurar relatórios elaborados de acordo com a nossa vontade com as métricas, depois também podemos usar a opção de criar-mos a nossa própria segmentação vou mostar embaixo na imagem para poderem ver aquilo que eu quero dizer.
Estou maravilhado com o Google Analytics e as novas opções que são a possibilidade de configurar relatórios elaborados de acordo com a nossa vontade com as métricas, depois também podemos usar a opção de criar-mos a nossa própria segmentação vou mostar embaixo na imagem para poderem ver aquilo que eu quero dizer.
terça-feira, 30 de setembro de 2008
11:21
File Under :
web 2,
Web Analytics
Nunca foi tão simples colocar link's nos email para efectuar a analise de quantas pessoas chegam ao seu site através do seu email e depois analisar o retorno. vejamos um exemplo :
Vamos enviar um email e nos links devemos colocar a frente o que se encontra a azul
http://jorge.m.cunha.googlepages.com/newsletter3.html?utm_source=Newsletter&utm_medium=email&utm_content=Newsletter&utm_campaign=Newsletter3
A seguir ao seu link colocar o seguinte alterando para o desejado
?utm_source=Newsletter&utm_medium=email&utm_content=Newsletter&utm_campaign=Newsletter3
Depois desta Informação podemos visualizar a informação seguinte

Não esquecer de colocar o script que coloca também nas suas páginas do seu site
Vamos enviar um email e nos links devemos colocar a frente o que se encontra a azul
http://jorge.m.cunha.googlepages.com/newsletter3.html?utm_source=Newsletter&utm_medium=email&utm_content=Newsletter&utm_campaign=Newsletter3
A seguir ao seu link colocar o seguinte alterando para o desejado
?utm_source=Newsletter&utm_medium=email&utm_content=Newsletter&utm_campaign=Newsletter3
- O que está a verde é para alterar:
- Utm_source=Newsletter ,ou seja, para determinar qual a nossa acção
- utm_medium=email , ou seja , qual a forma de envio da nossa acção
- utm_content=Newsletter , ou seja, desta forma determino qual o conteúdo
- utm_campaign,ou seja, Nº da Newsletter
Depois desta Informação podemos visualizar a informação seguinte

Não esquecer de colocar o script que coloca também nas suas páginas do seu site
domingo, 21 de setembro de 2008
18:23
File Under :
Newsletter,
web 2
Newsletter nº 3 Sumário: Nesta Newsletter vou vos dar conhecimento de estou a por uma rubrica acerca do Microsoft SQL Server que se denomina de SQL Truques e Dicas em http://itechblogers.tk Neste momento estou a participar no RVCC para tentar finalizar este trabalho ainda este ano. Umas questões que ponho a todos porque que será que as Empresas Portuguesas, não usam o conceito Web 2 nos seus sites corporativos?, será por falta de conhecimento?, ou porque não acham que tenham vantagem competitiva?
Para Navegar ao Site |
|
segunda-feira, 15 de setembro de 2008
21:14
File Under :
SQL,
SQL Truques e Dicas

Quando necessitamos de mudar o nome do servidor ao nivel do sistema operativo, torna-se obrigatório mudar o nome do SQL Server
- Backup das bases de dados
- select @@SERVERNAME devolve o nome do SQL Server
- sp_dropserver 'jmc-pc' nome do servidor anterior
- go
- sp_addserver 'ws-jmc', local nome novo do servidor
- go
- repetir o passo 2 after depois de reiniciar os serviços do SQL Server para verificar que o nome é aquele que lhe demos no passo 5
- Mais Informação em http://msdn.microsoft.com/en-
us/library/ms143799.aspx
domingo, 31 de agosto de 2008
quarta-feira, 30 de julho de 2008
22:30
File Under :
SQL,
SQL Identity,
SQL Truques e Dicas

Estava a procura de uma solução para os problemas com as colunas de identity no SQL e encontrei uma solução
Para ver qual o número que esta a nossa coluna de identity:
DBCC CHECKIDENT
(
articles
)
A resposta é que o valor é 6 como se pode visualizar aqui em baixo
Checking identity information: current identity value '6', current column value '6'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Para colocar um novo número na nossa coluna da tabela article:
DBCC CHECKIDENT
(
articles,reseed ,6000
)
retorna:
Checking identity information: current identity value '1000', current column value '6000'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Nota:
Não se deve usar o comando truncate pois este faz um reset a coluna Identity, por esta razão deve-se usar o comando delete.
segunda-feira, 14 de julho de 2008
20:53
File Under :
Excel,
It Tech Blogers,
SQL,
SQL Truques e Dicas

Vou mostrar como eu uso um select para lêr um ficheiro do Excel
Exemplo:
Select *
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=D:\importa\Ficheiro_Excel.xls;Extended Properties=Excel 8.0')...Folha1$
Para usarmos com a eficácia que sempre pretendemos. Os cabeçalhos devem ser únicos
e aonde está o Data Source deve-se indicar a localização do ficheiro e a folha do ficheiro de Excel que queremos efectuar o select(nota: o $ faz parte do comando). Os nomes quer do ficheiro quer da folha deve-ser simples, ou seja, sem espaços e caracteres especiais, as colunas do ficheiro de Excel deve estar bem formatadas.
Seja Solidário vá a http://www.ami.pt
quinta-feira, 19 de junho de 2008
19:30
File Under :
SQL,
SQL Truques e Dicas,
TI
Caros Leitores hoje traga-vos um exemplo para evitaros problemas de campos que são nulos no SQL e como uma simples instrução, podemos resolver o problema
a sintaxe é a seguinte:
Isnull(campo ou expressão,número) , ou seja, Isnull(fila_teste,0)
Explicação se campo for nulo o valor é zero, se a operação for divisão ou multiplicação pode-se usar em vez do zero um 1, ou um case mas em relação a este irei abordar brevemente,
espero que seja útil este "post" e que Portugal ganhe no Euro 2008 frente a Alemanha.
Site: Pessoal
quinta-feira, 5 de junho de 2008
Vou colocar uma Dica sobre o Crystal Reports que dá muito jeito. Uma delas tem a com o sql expressions em que podemos usar outra tabela e colocar o campo no report em que podemos efectuar colocando da seguinte forma:
(select top 1 registo from tabela where registo=1)
Podemos usar esta expressão sempre entre parênteses.
Em relação ao While Printing Records é muito util quando estamos a calcular totais ou se queremos avaliar se a impressão de registos de detalhe já terminou para possamos suprimir o page footer a sintaxe para exemplo:
WhilePrintingRecords; Booleanvar myvar true
(select top 1 registo from tabela where registo=1)
Podemos usar esta expressão sempre entre parênteses.
Em relação ao While Printing Records é muito util quando estamos a calcular totais ou se queremos avaliar se a impressão de registos de detalhe já terminou para possamos suprimir o page footer a sintaxe para exemplo:
WhilePrintingRecords; Booleanvar myvar true
quarta-feira, 21 de maio de 2008
23:18
File Under :
Vista,
windows vista
Neste momento pela minha experiência com o Vista em Português e em Inglês penso que as Empresas podem começar já a pensar em actualizar os seus parques informáticos mas devem ter atenção ao seguinte:
- Hardware
O Hardware dever ter como processador pelo menos um Duo Core e pelo menos 2 GB de Ram na memória.Uma boa placa de vídeo. Verificar se o hardware está homologado para o Vista, ou seja Drivers para os mesmos. ( existe uma Ferramenta neste link para avaliar na vossa rede).
Existe também para computadores com o Windows XP no site da microsoft um programa para avaliar e aconselhar ( aqui vai o link da microsoft http://www.microsoft.com/downloads/details.aspx?displaylang=pt-pt
&FamilyID=42b5ac83-c24f-4863-a389-3ffc194924f8)
- Software
Efectuar um levantamento exaustivo em termos de aplicações para que estas corram no Vista.
com estas indicações penso que poderá avançar para um teste piloto para assegurar que a transição é calma e segura.
Se o seu parque de PC's for das maiores marcas mundiais
deve consultar o site do fabricante
A versão do Vista que recomendo é o Vista Business e as versões mais estaveis como sempre são as Nativas, ou seja, em Inglês.
domingo, 20 de abril de 2008
14:42
File Under :
Google Pesquisa Personalizada
Caros em virtude de ter muito trabalho foi-me completamente impossível de elaborar conteúdo. Por isso deixo-vos com o meu motor de pesquisa, proporcionado pelo Google com o nome de pesquisa personalizada Beta em Português.
Este motor de pesquisa que utilizo no meu dia a dia, desta forma foi seleccionado fontes de informação colocando todos os sites que utilizo para trabalhar. Desta forma partilho está informação com todos.
Se clicarem a imagem poderam usar também e ver se funciona para vocês.
Se puderem dêem o feedback que julgam adequado para melhorar.
Deixo-vos mais uma imagem a baixo para verem
Este motor de pesquisa que utilizo no meu dia a dia, desta forma foi seleccionado fontes de informação colocando todos os sites que utilizo para trabalhar. Desta forma partilho está informação com todos.Se clicarem a imagem poderam usar também e ver se funciona para vocês.
Se puderem dêem o feedback que julgam adequado para melhorar.
Deixo-vos mais uma imagem a baixo para verem
Subscrever:
Mensagens (Atom)
NetWorkedBlog
tracer
Labels
- _uacct (1)
- Ano Novo (3)
- Bem vindo IT web 2.0 (1)
- Bill Gates (1)
- Birmânia (1)
- Business Objects (1)
- Crystal (2)
- Cursor (1)
- Database Triggers (2)
- Entretenimento (1)
- espaco em disco (1)
- Excel (1)
- férias (1)
- Google (2)
- Google Gphone (1)
- Google Pesquisa Personalizada (1)
- informática (1)
- It Tech Blogers (2)
- LOG (1)
- Movel (1)
- MSSQL (1)
- Natal (3)
- Newsletter (1)
- OPEN ID (1)
- Rootkits (1)
- segurança (1)
- software Grátis (1)
- SP (2)
- SQL (14)
- SQL Expressions (3)
- SQL Identity (1)
- SQL Truques e Dicas (13)
- TI (1)
- UAC (1)
- Urchin (1)
- Virtualização (1)
- Vista (4)
- VISTA Ecrã Preto (2)
- Vista SP1 (3)
- VM (1)
- web 2 (4)
- Web Analytics (5)
- web Office Online (1)
- WhilePrintingRecords (1)
- Windows Filesystem (1)
- windows vista (4)
RSS Feeds







