Fonte: http://imasters.com.br/artigo/16639

– 1. Criar a Tabela

USE [nome-do-banco]
GO

/****** Object: Table [dbo].[Trace_Alteracao_Objeto] Script Date: 04/08/2011 08:48:30 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Trace_Alteracao_Objeto](
[Id_Trace_Alteracao_Objeto] [int] IDENTITY(1,1) NOT NULL,
[Tp_Evento] [varchar](30) NULL,
[Dt_Alteracao] [datetime] NULL,
[Nm_Servidor] [varchar](20) NULL,
[Nm_Login] [varchar](50) NULL,
[Nm_Database] [varchar](20) NULL,
[Nm_Objeto] [varchar](50) NULL,
[Ds_Evento] [xml] NULL,
CONSTRAINT [PK_Trace_Alteracao_Objeto] PRIMARY KEY CLUSTERED
(
[Id_Trace_Alteracao_Objeto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

– 2. Criar a Procedure

USE [nome-do-banco]
GO

/****** Object: DdlTrigger [trgTrace_Alteracao_Objeto] Script Date: 04/08/2011 08:47:30 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [trgTrace_Alteracao_Objeto] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS

AS
BEGIN

SET NOCOUNT ON
DECLARE @Evento XML
SET @Evento = EVENTDATA()
INSERT INTO protesta.dbo.Trace_Alteracao_Objeto(Tp_Evento, Dt_Alteracao,
Nm_Servidor, Nm_Login, Nm_Database, Nm_Objeto,Ds_Evento)
SELECT @Evento.value(‘(/EVENT_INSTANCE/EventType/text())[1]‘,’varchar(50)’) Tipo_Evento,
@Evento.value(‘(/EVENT_INSTANCE/PostTime/text())[1]‘,’datetime’) PostTime,
@Evento.value(‘(/EVENT_INSTANCE/ServerName/text())[1]‘,’varchar(50)’) ServerName,
@Evento.value(‘(/EVENT_INSTANCE/LoginName/text())[1]‘,’varchar(50)’) LoginName,
@Evento.value(‘(/EVENT_INSTANCE/DatabaseName/text())[1]‘,’varchar(50)’) DatabaseName,
@Evento.value(‘(/EVENT_INSTANCE/ObjectName/text())[1]‘,’varchar(50)’) ObjectName, @Evento
END
GO

SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO

DISABLE TRIGGER [trgTrace_Alteracao_Objeto] ON DATABASE
GO

ENABLE TRIGGER [trgTrace_Alteracao_Objeto] ON DATABASE
GO

– 3. Consultar a tabela

SELECT *

FROM Trace_Alteracao_Objeto WITH(NOLOCK)

WHERE Nm_Objeto = ‘Nome_Objeto’

ORDER BY Dt_Alteracao

– 4. Analisar o resultado:

Caso nenhum resultado seja retornado, esse objeto nunca foi alterado desde a implementação do Controle de Versão.

Depois de encontrada a versão desejada na tabela, para visualizar seu código basta clicar sobre a coluna Ds_Evento dessa linha. Uma nova janela é aberta com o código XML do evento que foi executado.

O código do objeto fica entre as tags <CommandText> e </CommandText> na mesma formatação utilizada na criação ou alteração do objeto.

Caso os objetos possuam os caracteres ’>’ e ’<’ em seu script, eles serão substituídos no campo XML pelas strings ’&gt;’ e ’&lt;’respectivamente. Logo, caso você precise subir uma versão antiga de um objeto que possua esses caracteres, deve ser realizado um replace no script do objeto como abaixo:

Copie o texto entre as tags <CommandText> </CommandText>.

Abra uma nova query e cole o texto.

Teche Ctrl+H e realize o replace de ’&gt;’ por ’>’ de todo o texto.

Teche Ctrl+H e realize o replace de ’&lt;’ por ’<’ de todo o texto.

Tecle F5 para subir o objeto.

– 5. Comemorar!

Implantei isso em um projeto e foi muito útil!

 

Khibyz says: Funcinou tudo direitinho. Vale um aumento de salário, não?

Fonte:  http://evandro.net/sqlserver-indentity-zerar-autoincremento.html

Os campos de identificação automática (Indentity Increment) do SqlServer possuem um contador mantido nas tabelas do sistema, para alterar as mesmas deve-se utilizar o comando DBCC para auterar a mesma.

Para zerar completamente o contador, iniciando do zero novamente:

DBCC CHECKIDENT (‘NomeDaTabela’, RESEED, 0)

Para colocar o ultimo numero utilizado:

DBCC CHECKIDENT (‘NomeDaTabela’, RESEED, (select max(nome_campo) from NomeDaTabela))

Outros caomando para INDENTITY
IDENT_CURRENT(‘table_name’)

SELECT IDENT_CURRENT(‘table_name’)

IDENT_INCR ( ‘table_or_view’ )

SELECT TABLE_NAME, IDENT_INCR(TABLE_NAME) AS IDENT_INCR
FROM INFORMATION_SCHEMA.TABLES
WHERE IDENT_INCR(TABLE_NAME) IS NOT NULL

IDENT_SEED ( ‘table_or_view’ )

SELECT TABLE_NAME, IDENT_SEED(TABLE_NAME) AS IDENT_SEED
FROM INFORMATION_SCHEMA.TABLES
WHERE IDENT_SEED(TABLE_NAME) IS NOT NULL

 

Khibyz says: Coluna Zero, Zerar Coluna, Zero Seed… zero, zero, zero… Recruta Zero! lol (piadinha sem graça… haha!)

Eu precisava consultar um banco de dados em outro servidor aqui da empresa, no Microsft SQL Server 2008. Depois de fuçar algumas horas no Oráculo (Google), achei em alguns fóruns a solução.

Segue abaixo o script “mastigadinho” para executar, ser feliz e correr pro abraço! Hehehehe!

  • IF EXISTS(SELECT NAME FROM SYS.SERVERS WHERE NAME = ‘nome_do_servidor’ )
    EXEC SP_DROPSERVER ‘nome_do_servidor’, ‘DROPLOGINS’
    GO 

    – Rotina de conexão com outro servidor de banco:
    EXEC SP_ADDLINKEDSERVER
    @SERVER = ‘nome_do_servidor’,
    @SRVPRODUCT = ”,
    @PROVIDER = ‘MSDASQL’,
    @PROVSTR = ‘DRIVER={SQL Server};SERVER=10.121.1.4;UID=usuario_do_servido_remoto;PWD=senha_do_servido_remoto;’

    exec sp_serveroption ‘sisfat’, ‘Data Access’, ‘true’
    exec sp_serveroption ‘sisfat’, ‘rpc’,'true’
    exec sp_serveroption ‘sisfat’, ‘rpc out’,'true’

Depois de executar os scripts acima, acessar Segurança > Objetos do Servidor > Servidores Vinculado > nome_do_servidor > Propriedades > Segurança.

Incluir logon local “nome_do_usuario” (geralmente “sa”), não marcar “Representar” e o usuário e senha “usuario_do_servido_remoto” / “senha_do_servido_remoto”

Exemplo de consulta:

  • SELECT TOP 5 * FROM nome_do_servidor.nome_do_banco.DBO.nome_da_tabela

“Funfou” aí? Deixei seus comentários abaixo.

Khibys says: Papai Google sabe tudo! Hehehe!

Khibys says: muita preguiça de traduzir. Eu havia escrito um post decente, mas deu erro na hora de enviar e eu perdi a paciência. Já basta a raiva que o PHPalha em fez hoje.

As mentioned earlier, for Windows users there is a fake sendmail option. A bit more detailed description how to do this is:

If you have a test server in use running Windows and some kind of WAMP combo (XXAMP, WAMP Server, etc) then you’ll notice that the PHP sendmail command (mail()) does not work. Windows simply does not provide the sendmail statement …

There is a simple trick to get this to work though;

1) Download (or use the attached file) sendmail.zip from http://glob.com.au/sendmail/

2) Unzip this in a folder on your c: drive (preferably use a simple path, for example c:\wamp\sendmail — long filenames could cause problems)

3) Edit your PHP.INI file (note: WAMP users should access their php.ini file from the WAMP menu). Go to the [mail function] section and modify it as such:

[mail function]
; For Win32 only.
;SMTP =

; For Win32 only.
;sendmail_from =

; For Unix only.  You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path = “C:\wamp\sendmail\sendmail.exe -t”

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_paramaters =

.. and save the changes.

4) Open the sendmail.ini and modify the settings to:

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS’s “pickup” directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS’s pickup directory cause sendmail to
; run quicker, but you won’t get error messages back to the calling
; application.

smtp_server=mail.yourdomain.com

; smtp port (normally 25)

smtp_port=25

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn’t provided
; if you want to override the value in the registry, uncomment and modify

default_domain=yourdomain.com

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
; error_logfile=sendmail_error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
; debug_logfile=sendmail_debug.log

; if your smtp server requires authentication, modify the following two lines

;auth_username=
;auth_password=

; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines

pop3_server=mail.yourdomain.com
pop3_username=you@yourdomain.com
pop3_password=mysecretpassword

; to force the sender to always be the following email address, uncomment and
; populate with a valid email address.  this will only affect the “MAIL FROM”
; command, it won’t modify the “From: ” header of the message content

force_sender=you@yourdomain.com

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

hostname=

The optional error and debug logging is recommended when trying this the first time, so you have a clue what goes wrong in case it doesn’t work.
Force_sender is also optional, but recommended to avoid confusion on the server end.
Obviously mail.yourdomain.com, you@yourdomain.com, and mysecretpassword should be the relevant info for your SMTP server.
Now restart the WAMP services (mainly Apache so PHP re-reads it’s config).

Now you’re good to go and use the PHP mail() statement as if you’re a Unix user …

Fonte:  http://e-fabrica.com/blog/2009/10/19/php-fazendo-upload-de-arquivos-grandes/comment-page-1/

Se você tem problemas quando vai fazer upload de um arquivo grande no PHP e não consegue acessar as configurações do PHP “php.ini” de seu servidor, você tem uma alternativa que é usar um arquivo .htaccess.

Você deverá aumentar a memória, setar um tamanho maior para dados enviados via POST, aumentar também o tamanho máximo de upload, aumentar o tempo máximo de processamento para não estourar o tempo de execução do seu script, e também dependendo do tamanho do arquivo a ser feito upload, aumentar o tempo de vida da sessão.

Arquivo .htaccess: vamos ver na prática!
php_value memory_limit 300M
php_value post_max_size 150M
php_value upload_max_filesize 100M
php_value max_execution_time 1800
php_value session.gc_maxlifetime 3600

O parametro: memory_limit, define a qauntidade máxima de memória em bytes que um script pode alocar, seu padrão é “128M”, estamos alterando para “300M”, mas se precisar pode liberar mais memória para o script.

O parametro: post_max_size, define o tamanho máximo dos dados a ser enviados via POST, por padrão o tamanho máximo é de “8M”.

O parametro: upload_max_filesize, define o tamanho máximo do arquivo que você poderá fazer upload, seu tamanho padrão é de “2M”.

O parametro: max_execution_time, define em segundos o tempo máximo de execução de um script, o tempo padrão é de 30 segundos, estou especificando 30 minutos, é meio exagerado mas estou levando em conta as conexões discadas que ainda existem. :(

O parametro: session.gc_maxlifetime, especifica também em segundos o tempo de vida da sessão, após isso ela é limpada. O padrão é de 24 minutos ou 1440 segundos, estou alterando aqui para 1 hora para não ter problemas quando for executar o script de upload.

Khibyz says: Mais uma que eu tive que aprender pra utilizar o PHPalha. Huauahuah!

Então… o problema foi o seguinte:

O programa (SINAL 5.0, um software fiscal), é recomendado para rodar em máquinas com Windows 2000 / 98, tem problemas de compatibilidade conhecidos com Windows XP, e não roda no Windows Vista. Se fosse só este o problema, poderia ser facilmente resolvido clicando em Propriedades > Compatibilidade > Executar este programa em modo de compatibilidade, e escolher a versão funcional do Windows para este programa. O problema é que o bendido programa SÓ tem versão 32bit e SÓ roda em Windows 32bit. A mensagem de erro foi a seguinte:

Mensagem de erro

Consultei alguns amigos e pesquisei em alguns fóruns, mas todas as soluções propostas não foram muito úteis. Resolvi então tentar a execução do Windows XP mode no Windows 7. Ele cria uma máquina virtual no seu computador, onde você vai instalar uma versão leve do Windows XP 32bit.

Não vou detalhar o funcionamento da coisa,  mas vou disponibilizar os arquivos que você vai precisar pra fazer isso funcionar. Para maiores detalhes, leia como funciona no site da Microsoft.

#Comofaz?

1. Verifique se o seu processador suporta virtualização com o SecureAble;

- O resultado da execução do programa dever ser YES para Hardware Virtualization. Caso contrário, não vai funcionar.

2. Baixe e instale o Windows Virtual PC;

3. Baixe e instale o Windows XP mode.

Depois de instalar tudo, execute o Windows XP mode, no seu Menu Iniciar, e então o Windows 7 vai abrir uma janela de um programa normal, só que é o próprio Windows XP. Pra que você possa usar dispositivos USB nele, modem, impressora, etc, você vai ter que instalar normalmente os drivers dentro do Windows XP. Vai ficar mais ou menos assim:

Windows XP Mode

E tudo funcionou direitinho! Estou usando o pré-histórico SINAL 5.0 normalmente aqui na minha máquina, e com melhor desempenho do que na época do Windows XP original.

O tutorial que utilizei foi o do Baixaki. Recomendo!

Khiby says: Morro de preguiça de escrever no blog. Só venho aqui quando quero compartilhar alguma coisa, até pra que eu mesmo consulte no futuro. Se quiserem me achar, sigam-me no twitter. #ficadica lol

Precisei fazer uma atualização do meu Notebook para o Windows 7 64bit e, após a instalação, fiquei surpreso ao observar que, simplesmente, o DVD-ROM não estava sendo identificado pelo Windows!

Pesquisando no Gerenciador de Dispositivos, havia uma mensagem de erro para os drivers em utilização, mas nem mesmo a atualização destes arquivos resolvia o problema.

Após alguns minutos de pesquisa no Google (sempre ele!), encontrei no Fórum PC´s uma pequena dica, que funcionou imediatamente e, por isso, resolvi compartilhá-lha, como segue abaixo:

(…)

Texto retirado do usuário Bobson do fórum Clube do Hardware

Sua gravadora não é reconhecida pelo sistema

1.Abra o editor de registro do Windows (iniciar – run – digitar regedit)

2. Encontre a seguinte chave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}

3. Remova totalmente os valores Upperfilters e Lowerfilters no lado direito da tela da chave de registro (clique duas vezes no valor):

4. Reinicie o PC. Tome cuidado ao mexer no registro , edite somente os valores acima.

Khiby says: Não sabe? Não encontra? Procura no Google! (É o que diria meu amigo Backteria…)