0

Excel retorna valores como NULL Usando OpenRecordset DAO

Posted by Fabio's Blog on 16:55
Ao se conectar a uma planilha do Excel usando o método DAO OpenRecordset, alguns valores em uma coluna do Excel podem ser retornados como nulo quando o valor subjacente não é um nulo. Isso normalmente ocorre quando tipos de dados numéricos e de texto são misturados dentro da mesma coluna do Excel.

Esse problema é causado por uma limitação do driver ISAM do Excel que, uma vez que determina o tipo de dados de uma coluna do Excel, ele irá retornar um valor nulo para qualquer valor que não é do tipo de dados do driver ISAM. O driver do Excel ISAM determina o tipo de dados de uma coluna do Excel, examinando os valores reais nos primeiros registros e, em seguida, escolhe um tipo de dados que representa a maioria dos valores em sua amostragem.

Você pode adicionar a opção IMEX = 1; Por exemplo:

    Set db = OpenDatabase ("C: \ Temp \ Book1.xls", _ False, True, "Excel 8.0; HDR = NO; IMEX = 1;")


Ambiente IMEX = 1 indica o driver para usar o modo de importação. Neste estado, a configuração do Registro ImportMixedTypes = texto vai ser notado. Este dado força a conversão dos dados em texto. Para que isso funcione de forma confiável, você também pode ter de alterar a configuração do registro, TypeGuessRows = 8. O driver ISAM por padrão olha para as primeiras oito linhas e de que a amostragem determina o tipo de dados. Se esta linha de amostragem é tudo numérico, em seguida, definindo IMEX = 1 não irá converter o tipo de dados padrão para texto, ele permanecerá numérico.

Você deve ter cuidado para que IMEX = 1 não ser usado indiscriminadamente. Este é o modo de importação, portanto, os resultados podem ser imprevisíveis se você tentar inserir ou atualizar de dados nesse modo.

Espero que tenha sido útil.

0

Session State timeout C#

Posted by Fabio's Blog on 13:28
Existem alguns sistemas que precisam de um timeout maior do estado da sessão, por exemplo alguns sistemas que os usuário deixam a janela aberta para efetuar outras rotinas e somente depois terminarem a tarefa no sistema, algumas vezes precisamos modificar o timeout de sessão dos nossos sistemas, o timeout padrão é de 20 minutos. Para configurarmos o timeout de sessão é só inserir a linha abaixo no web.config do nosso sistema dentro da tag <system.web>.

    
...
< system.web >
< sessionState timeout="60" >
...


No exemplo acima configurei minha aplicação com um timeout de sessão de 60 minutos.

Espero que tenha sido útil.

0

Erro de divisão por zero (Error divide by zero) C#

Posted by Fabio's Blog on 10:49
Erro de divisão por zero é muito comum na nossa área, ainda mais quando temos que fazer importações, ou efetuar cálculo através de dados digitados pelo usuários, abaixo a rotina para não haver esse incoveniente para o usuário ao preencher uma tela do sistema.


int a = 0;
int b = 10;
int c = 0;

try
{
    a = b / c;
}
catch (Exception e)
{
    Console.WriteLine("A run-time error occurred.");
}
finally
{
    Console.ReadLine();
}



Espero que tenha sido útil.

0

Inserir espaços em branco ou zeros para códigos

Posted by Fabio's Blog on 12:55
Muitas vezes precisamos estabelecer em nosso códigos um certo número de casas para um campo, principalmente quando trabalhamos com geração de arquivo texto, muito utilizado para fazer importação de dados entre sistemas, abaixo coloco um código que gera esse tipo de resultado, segue:

// Insere espaços em branco
public string Space(int nx)
{
    string strret = "";
    for (int i = 1; i <= nx; i++)
        strret = strret + " ";

    return strret;
}

// Insere Zeros em uma string
public string Zero(int nx)
{
    string strret = "";
    for (int i = 1; i <= nx; i++)
        strret = strret + "0";

    return strret;
}

E a chamada para concatenar ou simplesmente preencher o campo:

string v_cd_prod = Zero(9 - v_cd_prod.Length);


No exemplo acima a variável v_cd_prod será carregada com 9 zeros.

Espero que tenha sido útil.


1

VERIFICA PERIODO ENTRE DATAS - JAVASCRIPT

Posted by Fabio's Blog on 09:02
Esta função verifica um prazo entre datas na linguagem Javascript:


 // Declara as variáveis
var dtMin, dtMax
var strData, strPrzMin, strPrzMax
var aryData

// captura a data inicial
strDataIni = '<%= mid(now,1,2) & "/" & mid(now,4,2) & "/" & mid(now, 7,4)%>';
// captura a data final - No exemplo utilizaei um TextBox para digitar esta data
strDataFim = document.Form1.txtDataVencimento.value;
// Estipulo aqui um prazo mínimo
strPrzMin = 30;
// Estipulo aqui um prazo máximo
strPrzMax = 180;

// Efetua aqui o cálculo da diferença entre as datas inicial e final
var fim = new Date(strDataFim.split('/')[2], strDataFim.split('/')[1], strDataFim.split('/')[0]);
var inicial= new Date(strDataIni.split('/')[2], strDataIni.split('/')[1], strDataIni.split('/')[0]);
diferenca = ((Date.UTC((fim.getYear()),fim.getMonth(),fim.getDate(),0,0,0)-Date.UTC((inicial.getYear()),inicial.getMonth(),inicial.getDate(),0,0,0)) / 1000 / 60 / 60/ 24) -1;

// Verifico a diferença entre o prazo mínimo e máximo
if (diferenca < strPrzMin)
{
    alert('O prazo mínimo para a Data de Vencimento é de 30 Dias');
    document.Form1.txtDataVencimento.focus();
    return;
}

if (diferenca > strPrzMax)
{
    alert('O prazo máximo para a Data de Vencimento é de 180 Dias');
    document.Form1.txtDataVencimento.focus();
    return;
}

Espero que tenha sido útil.

0

SQL Server. Habilitando SQL Authentication e o usuário 'sa'

Posted by Fabio's Blog on 15:24
Um problema comum quando se utiliza o SQL Server é quando não é possível entrar com usuários SQL Server, exemplo o super usuário “sa”, pois durante a instalação foi configurado para Windows Authentication.
Como mencionado em um post no Fórum do MSDN: “Criei a instância, criei senha para meu login, mais quando vou entrar pela autenticação do SQL SERVER, ele dá erro, já pela da autenticação do Windows ele dá certo…”
Visto que não é possível ficar reinstalando o SQL Server, somente para trocar a autenticação de Windows Authentication para “Mixed” Authentication, segue neste post a solução para este problema.
Primeiramente é necessário entrar no SQL Server utilizando o SQL Server Management Studio. Conforme a figura abaixo, estou conectando em uma instância do SQL Server 2008 Express utilizando a autenticação Windows Authentication, mas este exemplo funciona perfeitamente no SQL Server 2005 e nas edições superiores.


Após conectar, clicando com o botão direito do mouse sobre a instância do SQL Server na janela Object Explorer (Atalho F8 ou Menu “View\Object Explorer”), item Properties.

Nesta nova janela, na aba (“página”) Security, altere “Server authentication” para “SQL Server and Windows Authentication mode”.

Feito isso, uma janelinha informará que para esta alteração ter efeito, será necessário que o serviço do SQL Server deve ser reiniciado. Mas isso pode ser feito depois, quando for terminada a configuração dos usuários do SQL Server, então deixe para depois.


Continuando na janela Object Explorer, expandindo a instância, “folder” Security\Logins, pode ser criado novos usuários do SQL Server ou seguindo o objetivo inicial deste tópico, habilitar o usuário “sa”.
Conforme a figura abaixo, botão direito sobre o login “sa”, menu Properties.


Na nova janela, altere o password do usuário, também é possível alterar o “idioma” e o banco de dados padrão deste usuário nesta janela, entre outras funcionalidades.



Na aba (“página”) Status, clique na opção “Grant” em “Permission to connect to database engine” e “Enable” em “Login”.



Outra maneira pratica de habilitar o usuário “sa” é por meio de script, exemplo:

ALTER LOGIN sa ENABLE;

GO

ALTER LOGIN sa WITH PASSWORD = 'P@ssw0rdM0del0';

GO

Então, agora resta reiniciar o SQL Server. Para não ter que entrar nos Serviços do Windows ou SQL Server Configuration Manager ou qualquer variante como arquivos .bat ou SQL Server Surface Area.

Uma dica é clicar com o botão direito na instância do SQL Server na janela Object Explorer e “Restart”.


Clique em Yes nesta próxima janelinha, para dizer que você TEM CERTEZA QUE QUER REINICIAR O SERVIÇO…



Agora é só conectar com o usuário “sa” para testar.







Espero que tenha sido útil.

0

Waitfor Delay, waitfor time SQL Server

Posted by Fabio's Blog on 14:36
Quando temos problemas de performance com algumas aplicações a maior dificuldade é fazermos acontecer o erro em nosso ambiente.
 
O comando waitfor do SQL Server é muito útil para este tipo de teste, pois utilizamos o waitfor delay ou o waitfor time na procedure e efetuamos o teste de timeout, etc.

Abaixo o comando:


-- Utilizado para esperar pelo tempo passado como parâmetro
-- No exemplo abaixo ele passa pelo waitfor depois de 5 segundos
waitfor delay '00:00:05'

-- Utilizado para esperar até que a hora seja alcançada
-- No exemplo abaixo ele passa pelo waitfor as quatorze horas e trinta e oito minutos
waitfor time '14:38'

Espero que tenha sido útil.

0

Métodos IndexOf e IndexOfAny de uma string

Posted by Fabio's Blog on 09:23
Esses métodos são muito úteis quando precisamos procurar um ou vários caracteres dentro de uma string, por exemplo, em uma string você têm que saber se existe o número 1, você usa o IndexOf para fazer esta verificação, e o retorno será a posição do primeiro caracter que o método encontrar.

Segue o exemplo do IndexOf.

string v_str = "www.fabiorente.blogspot.com";
if (v_str.IndexOf('.') > -1)
{
// Caracter '.' encontrado
}
else
{
// Caracter '.' não encontrado
}

Segue o exemplo do IndexOfAny.

string v_str = "www.fabiorente.blogspot.com";
char[] chars = { '0', '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' };
if (v_str.IndexOfAny(chars) > -1)
{
// Existe Número
}
else
{
// Não Existe Número
}

Espero que tenha sido útil.

Copyright © 2009 Fabio's Blog All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive. Distribuído por Templates