quinta-feira, janeiro 27, 2005

PowerBuilder - Verificar se uma aplicação está sendo executada

//Declare as seguintes external functions
FUNCTION ulong CreateMutexA (ulong lpMutexAttributes, boolean InitialOwner,ref string lpName) library "kernel32.dll"
FUNCTION ulong GetLastError () library "kernel32.dll"
FUNCTION ulong CloseHandle(ulong hMutex) library "kernel32.dll"


//NO seu códiog, faça o seguinte
string ls_aplicacao
uint rc1,rc2
boolean lb_inherit

lb_inherit=false
ls_aplicacao="sua_aplicação.exe"
rc1=CreateMutexA(0,lb_inherit,ls_aplicacao)
rc2=getlasterror()
if rc2=183 then // mutex existe
CloseHandle(rc1)
MessageBox("Atenção", "Aplicação já esta rodando")
else
Messagebox("Solicitação será Executada", "Aplicação será iniciada.")
end if

sexta-feira, janeiro 21, 2005

SQL Server – Problemas com Formato da Data

Em alguns casos, ocorrem erros de conversão de datas para o SQL Server, com a seguinte mensagem:

Server: Msg 242, Level 16, State 3, Line 1
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Este erro pode ocorre com apenas um Login especifico no banco de Dados SQL Server ou com todos os logins.

Isto ocorre porque o Login do SQL Server possui um idioma que ele irá utilizar. Na maioria das instalações, o SQL Server é instalado em English e os Logins assumem o idioma default da instalação do SQL Server.

Mas, está cada vez mais comum a instalação do SQL Server em idiomas específicos (português, Francês, espanhol e ect...). Neste caso, o idioma default vai ser o da instalação do SQL Server. Em outros casos, este idioma pode ser trocado, para apenas um Login ou para todos os Logins, gerando o erro acima.

Para resolver o erro citado no inicio, você tem duas soluções.

A primeira é identificar com o formato de data/hora que você está utilizando e padronizar os seus logins com o idioma que atende aquele formato de data/hora.

A segunda solução seria converter o valor para datetime, passando o formato que você está utilizando. Considero está solução melhor, pois você fica livre de problemas gerados por alteração de configuração de Logins.

Por exemplo

select convert(datetime,'2002-01-21 12:59:12.150' , 101 )

Se você trocar o 101 por 103, você vai notar que vai dar erro, pois o formato de data 103 é o seguinte formado

select convert(datetime,'21/01/2002 12:59:12.150',103)

Que é o formato de data utilizado no Brasil.

Boa Sorte

quinta-feira, janeiro 20, 2005

DotNet – Visual Studio não reconhece PocketPC Device

Em algumas situações, quando utilizamos o Visual Studio 2003 para desenvolvimento para Mobile Devices ( Pocket PC e Smart Phone), recebemos a seguinte mensagem

Error: Cannot establish a connection. Be sure the device is physically connected to the development computer.

Este erro ocorre pois o Visual Studio não conseguiu encontra o seu Device e muitas vezes é gerado pela reinstalação ou update do Active Sync no PC.
Tentei “N” soluções para resolver o problemas, inclusive os listados nos site
http://download.microsoft.com/download/c/d/b/cdbff573-73fb-4f9f-a464-c5adc890e1ae/Readme.htm#CEDeploy

Tentei reinatalar o Visual Studio 2003 duas vezes, limpei as chaves do registry, rodei o ProxyPorts.Reg e fiz N tentativas.

Depois de uma semana tentando resolver o problema, consegui achar a solução que resolveu o meu problema.

Abaixo estão os passos que segui:

1. Remover totalmente activesync.
2. Reinstalar de novo.
3. Executar C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\WinCE Utilities\WinCE Proxy Ports Reg\ProxyPorts.Reg
4. Verificar [HKLM\microsoft\wince services] os registros para as portas do proxy
5. Si [HKLM\microsoft\wince services] se não existe, o seu problema é outro e este roteiro não vai corrigi-lo.
6. Si [hKLM\microsoft\wince services] se existe, então executa "DelDesktopCryptKey.exe" em "C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\WinCE Utilities\DelDesktopCryptKey"
7. Executar um Soft Reset no Pocket pc.
8. Copiar "DelCryptoKey.exe" armv4 version para o pocket pc e executá-lo no Pocket PC
9. Antes de iniciar a compilação no Visual Studio, assegure que tenha instalado o utilities v1.1 for VS.NET 2003 add-ons .
10. No Visual Studio, selecionar tools->select windowsce device cpu
11. Selecionar armv4 e pressionar configurar
12. Teste

Esta configuração funcionou perfeitamente no me caso. A minha configuração é a seguinte:
Pocket PC
Dell Axim X30
Windows Móbile 2003
Active Sync 3.7.1
PC
Windows XP Sp 2
Visual Sudio 2003

segunda-feira, janeiro 17, 2005

Ferramentas Case

Ferramentas Case, ErWin, CaseStudio, Dr. Case, Visio e Together. Qual é a melhor opção para se trabalhar com o SQL Server 2000? Tire suas dúvidas e veja qual atende melhor as suas necessidades

Comparando o SQL Server com Outros Bancos de Dados

Você está comprando um novo Sistema Gerenciador de Bancos de Dados Relacional? Quer comparar seu sistema atual com o SQL Server? Veja o que analistas independentes estão dizendo sobre o SQL Server, como ele difere do Oracle, IBM, e Sybase, e encontre recursos que o ajudarão a migrar ou integrar seu sistema de bancos de dados atual.

SQL Server 2000 - Alta Disponibilidade

Maximize a disponibilidade de suas aplicações comerciais com log shipping, backups on-line e clusters failover. Leia este artigo e conheça melhor as soluções de alta disponibilidade oferecidas pelo SQL Server 2000.O Microsoft SQL Server 2000 ajuda a maximizar a disponibilidade através de backups online, log shipping completamente integrados e clusteringfailover potencializado. Destes métodos, o backups online está disponível tanto no SQL Server 2000 Standard Edition quanto no SQL Server 2000 Enterprise Edition. Log shipping e clustering failover estão disponíveis somente na Enterprise Edition

sexta-feira, janeiro 14, 2005

PowerBuilder - Inserindo objeto via metodo post

By Celso S. Côrtes

//Inserindo objeto via metodo post
Blob lblb_args
String ls_headers
String ls_url
String ls_args
long ll_tam
integer li_ret
li_ret= GetContextService( "Internet", iinet_base )
IF li_ret = 1 THEN
ir = CREATE n_ir
ls_url = "http://sua_url/xxxx/parametros?"
ls_args = "id=nome&pwd=senha"
lblb_args = Blob( ls_args )
ll_tam = Len( lblb_args )
ls_header = "Content-Type: " + &
"application/x-www-form-urlencoded~n" + &
"Content-Length: " + String( ll_tam ) + "~n~n"
li_rc = iinet_base.PostURL( ls_url, lblb_args, &
ls_header, ir )

Banco de Dados - Funções do SQL Server X Oracle

Neste Site você tem uma lista das funções do SQL Server e quais são as funções compativeis no Oracle.

quinta-feira, janeiro 06, 2005

SQL Server 2000 - Identificando Versões

Versões do SQL Server
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

* 2000
- 2000.80.194 = RTM (Primeira Versão)
- 2000.80.384 = SP1
- 2000.80.534 = SP2
- 2000.80.760 = SP3 ou SP3a

SQLServer 2000 - Replicação

- Informacoes
1. Snapshot Agent : Replicacao Inicial, sincronismo ( Este processo é pessado e bloqueia o banco por um certo tempo)
2. Log Reader Agent : Replica as transacoes do Publisher para o Distribution
3. Distribution Agent : Replica as transacoes do Distribution para o subscriber
4. Merge Agent : processo de replicacao para os dois lados, responsavel por resolver conflitos

- Passos para configurar a Replicaçao
1. Definir o cenario : Central Publisher
2. Definir o metodo : Transaction replication
3. Criar Usuario Utilizado : o usuario deve ter acesso de Administrators, system
4. Associar o usuario com os servicos MSSQL e AGENT
5. Habilitar o servidor de Publicacao (configurar o distribution e o publisher). Chamar o wizard e lembrar de informar um diretorio que possua espaco para o distribuition(de preferencia coloque o diretorio em um disco diferente para ganho de performance)
6. Se houver triggers, marcar a opçao de NOT FOR REPLICATION para que os dados nao sejam alterados 2 vezes
7. Em todas as Constraints, marcar a opçao de NOT FOR REPLICATION para que os dados nao sejam validados 2 vezes
8. Criar as publicacoes : utilizar o wizard, selecionar transactional publication, ir no botao de DEFAULT ARTICLES e marcar triggers e DRI, selecionar as tabelas (se existir alguma tabela com coluna identity, a propriedade identity nao sera levada)
9. Verificar se os bancos no subscribers estao vazios.
10. Criar Subscribers : Definir se vai ser Pull (configurado em cada subscriber) ou Push (configurado no servidor de publicacao, mais simples), marcar para realizar o Snapshot
11. Monitorar :
12. Backup : Publisher(Published DB, msdb, master), Distributor (distributor DB,msdb,master), subscriber(subscriber db), o published e distribution db devem ser backupiados juntos
13. Resolvendo erro : Se ocorrer erro na replication, retire o subscriber, reinsira o mesmo e faca um sincronismo. Entre nas opcoes da publicacao e mande reinicializar o subscriber, depois rode o servico de snapshot, quando acabar, rode o servico do subscriber.


Sql Anywhere - Informações sobre este sgbd

Este link traz todas as informações necessárias sobre o SGBD SQL Anywhere.

quarta-feira, janeiro 05, 2005

Dicas Gerais - Aumentar a conta do Hotmail para 250 MB

Galera,
fiz o teste e funcionou. Se você quiser aumentar a sua caixa posta do Hotmail de 2 MB para 250 MB, siga os passos abaixo.

Hotmail 250mb de espaço Aumente sua conta do hotmail de 2mb para 250mb.
Explicações: Não é necessario pagar nada para aumentar o espaço da sua conta.
Como podem ver na Ajuda do hotmail, no Brasil ainda "em breve" as contas passarão ter mais espaço de armazenamento. Abaixo iremos mostrar como alterar o país configurado e assim aumentar o tamanho da conta:
Somente em contas @hotmail.com.
1. Acesse www.hotmail.com.br e entre com seu usuário e senha normalmente.
2. Clique em opções, no canto superior direito da tela:
3. Na página opções, clique em Meu Perfil:
4. Trocar campos:País/Região: Estados UnidosEstado: FloridaCEP: 33332
Você pode usar outros estados, caso o cep esteja correto.
5. Atualize, e na página seguinte irá mostrar uma mensagem: Seu Perfil foi atualizado com sucesso.
6. Acesse o link http://www.hotmail.msn.com/cgi-bin/accountclose e clique no botão encerrar minha conta, no final da página:
Obs: Você não perderá seus e-mails, contatos do MSN Messenger, etc.
7. Irá para uma página de confirmação de encerramento:

8. Acesse novamente www.hotmail.com.br e entre com o mesmo e-mail e senha... Pedirá para você ativar a conta, aceitar o termo de uso, promoções e etc..
9. Pronto sua conta já terá 25mb:

Após 30 dias sua conta aumentará para 250mb automaticamente, neste período não deixe de acessar seu e-mail.

PowerBuilder - enviar e-mail via SMTP

Qual falamos em enviar e-mail via SMTP, queremo dizer, sem utilizar software de e-mail (outlook, Netscape, Eudora e etc...)
O PowerBuilder não tem suporte a este recurso, tendo que utilizar aplicações externas para isso. Existe N aplicações que fazem o que queremos. Encontrei uma livre na Internet que funciona muito bem. O nome da aplicação é BLAT (http://www.blat.net/).
Ela funciona da seguinte forma.
* Você tem que possuir uma servidor SMTP funcionando na sua rede. O Exchange Server possui este recurso, só é necessário abilita-lo e configura-lo.
* Você pode chamar um aplicativo (BLAT.EXE) passando os parâmetros necessários ou uma função de uma dll (BLAT.DLL) que envia o e-mail para você.

PowerBuilder – Migração de versão

Nas migrações para PowerBuilder 5,6 e 7, ocorreram vários problemas e por isso, toda vez que temos uma versão nova do PowerBuilder, sempre aparece a pergunta “Vamos ter problemas na migração?”.

Já realizei todo o tipo de migração e notei que as migrações para PowerBuilder 8,9 e 10 são bem tranqüilas, bastando compilar os objetos no novo PowerBuilder. Na migração para PowerBuilder8, ainda ocorreram alguns problemas, como o desaparecimento de scripts (em alguns eventos, o código simplesmente desaparecia), mas na migração para PowerBuilder 9 e 10, não tive nenhum problema e nem parece que você está fazendo uma migração, mas apenas executando um Full Rebuild na aplicação
Ponto positivo para o PowerBuilder

PowerBuilder VERSUS Windows 9x

Até a versão 8 do PowerBuilder, um executável gerado podia ser executado em qualquer sistema operacional Windows 95 ou superior.
A partir do PowerBuilder 9, o executável não mais funcionará em Windows 95, sendo necessário o Windows 98 ou superior de acordo com a documentação da Sybase. Já ouvi relatos de pessoas que tiveram problemas com Windows 98, mas não conseguimos identificar se era limitação do PowerBuilder ou da aplicação.
A partir do PowerBuilder 10 as restrições ficam maiores ainda. O próprio PowerBuilder 10 só pode ser instalado no Windows 2000 ou XP. A aplicação compilada ( executável ) do PowerBuilder 10 funcionará apenas no Windows 2000, 2003 e XP. Assim, ficam excluídos os sistemas operacionais Windows 95, 98, Me (Millennium) e NT.Essa informação é muito importante para quem pretende migrar os seus sistemas para PowerBuilder 9 ou 10.