Problemas ao conectar com banco SQL SERVER?

Monday, March 31st, 2008

Galera, tive esse problema quando estava tentando realizar uma integração entre dois bancos SQL SERVER de um CRM para um ERP. Quando tentava conectar com banco do ERP e executar uma query, retornava erro, porém se fosse executar o mesmo SQL no Studio Sql Server rodava corretamente.

Pesquisei na internet e fiz o seguinte:

Criei um driver ODBC em seu servidor com o nome TESTE

Após criado o driver corretamente utilize a função:

resource odbc_connect
( string $dsn
, string $user
, string $password
[, int $cursor_type
] )
http://us.php.net/manual/pt_BR/function.odbc-connect.php

$conexao = odbc_connect(”TESTE”,”usuario”,”senha”);

Depois de conectado com o banco através de um driver ODBC, para executar uma query no banco, faça o seguinte:

resource odbc_exec
( resource $connection_id
, string $query_string
[, int $flags
] )
http://us.php.net/manual/pt_BR/function.odbc-exec.php

odbc_exec($conexao, “SELECT * FROM tabela”);

Bom galera, para mais função e soluções de seus problemas utilize o manual do PHP.net:
http://us.php.net/manual/pt_BR/ref.odbc.php

Se alguém tiver dúvida pergunte… mas primeiro procure no GOOGLE =D
hehe

Abraço!

SQL Server - Data e Hora

Thursday, February 21st, 2008

Ae galera… uma rapidinha… =D

Converte a hora do banco SQL SERVER para HH:MM:SS

SELECT
convert(char(10),hora,108) as hora

Existe esse padrão também:

Só que aqui é direto no PHP… guerrero! =D

Converte a data para DD/MM/AAAA

$dat_contato = date(”d/m/Y”, strtotime($dat_contato));

Abraços!

SQL - Procedures

Thursday, October 18th, 2007

Obs.: Procedure testada somente para o padrão INTERBASE
=D

## Cria uma nova terminação alem do “;”
SET TERM ^;

## Criando a procedure com nome teste
CREATE PROCEDURE teste (variavel VARCHAR(50))
## Que resultados obterei quando executá-la?
RETURNS (
nome VARCHAR(50),
idade INTEGER
)

## Declarando variáveis
AS sobrenome VARCHAR(50);

## Importante: A declaração de variáveis somente é realizada
## para variáveis que não estão no RESULTS

## Início da execução
BEGIN
## Atribuindo valores � s variáveis
nome = ‘João’;
idade = 25;
SUSPEND;
sobrenome = ‘Maria’;
SUSPEND;
nome = ‘Dayane’;
idade = 18;
END^

## Retorna a terminação padrão “;”
SET TERM ;^

Banco de Dados - Índice

Saturday, May 19th, 2007

Para não reescrever a roda =D

Antes de tudo leia:

http://pt.wikipedia.org/wiki/Banco_de_dados_relacional

Para quem não quer acessar o Wikipedia:

Índices

Um índice não é uma característica do Modelo Relacional, mas sim uma estratégia de otimização de consulta para implementações desse modelo. Isso acontece porque o Modelo Relacional é um modelo teórico, porém quando transformado em uma implementação as suas operações (tanto da álgebra quanto do cálculo) exigem um tempo de busca. Se os dados estiverem ordenados de uma forma ideal, esse tempo de busca pode ser bastante reduzido.

Os índices funcionam então como catálogos organizados de forma a beneficiar certo tipo de consulta. É possível imaginar que uma tabela seria associada a quantidade máxima de índices, porém isso traria muitos gasto de inserção e alteração. Por isso, em uma implantação de um banco de dados, são escolhidos os indíces mais adequados. Normalmente a chave primária é um índice.

O limitador é imposto exclusivamente pela ferramenta de software utilizada. Sendo assim, para a recuperação dos dados é necessário a existência de mecanismos que facilitem a consulta, proporcionando uma perfomance aceitável para a mesma. Para isso, os sistemas de bancos de dados relacionais criam índices das tabelas, sendo que esses índices são atualizados constantemente.

Caso o índice se corrompa por algum motivo, é possível que pesquisas possam retornar resultados não desejados ou que inserções de chaves duplicadas aconteçam. Nesse caso o banco de dados será corrompido também. Os sistemas de bancos (bases) de dados possuem mecanismos de evitar que esses eventos ocorram como também possibilitam a recuperação dos índices e consistência da tabela caso eles ocorram.

Porque usar índice?

Para que utilizar índice em um campo de uma tabela?

Vou responder com outra pergunta fazendo uma analogia a um livro:

Como você encontraria algum assunto em um livro sem olhar no índice? Com certeza teria que passar folha por folha até encontrar, e da mesma maneira ocorre com Bancos de Dados. Bom acho que não preciso mais dizer nada sobre o porque utiliza-los.

Ahh! Preciso sim… Fatos reais, uma empresa precisava de 12 horas para ter um relatório a algum tempo, quando foram implementados índices aos bancos de dados, eles reestruturaram o banco de dados adicionando índices… quando a consulta foi executada novamente eles tiveram uma surpresa, o mesmo relatório de 12 horas foi executado em menos de 1 segundo. (Fonte: Professor Mendes =D)

Como funciona?

Quando é criado um índice para determinado(s) campo(s) em uma tabela, é gerado uma nova tabela com todos os registros do(s) campo(s) a qual está criando de forma ordenada, com o endereço do registro na tabela mãe, ou aquela aquela com todos os registros e não somente os índices e endereçamento. Resumindo, fazendo novamente uma analogia a um livro, ele coloca o número da página que determinado conteúdo se encontra.

Banco de Dados Relacional

Fonte: Aula de Banco de Dados da Facul =D

MYSQL - Calculando a idade no SQL

Monday, February 5th, 2007

Após o super artigo mostrando como calcular a idade de um indivíduo com JavaScript, estou aqui com um outro super, hiper artigo (Modesto) para mostrar como calcular a idade com SQL.

Vamos lá:

É simples de montar, bastar passar como parâmetro o campo DATA:

SELECT usuarioNome
,(
YEAR(CURDATE()) - YEAR(usuarioNascimentoData)) - (RIGHT(CURDATE(),5) < RIGHT(usuarioNascimentoData,5)) AS usuarioIdade

FROM usuario

WHERE usuarioNome LIKE ‘%andrey%’

Fácil e objetivo!
Se tiverem alguma dúvida, basta postar aqui!
E lembrando, usou o código, é obrigatório deixar seu regado ;)

Como mostrar totais sem contar os registros duplicados.

Friday, September 1st, 2006

Bom hoje estava com uma dúvida, na hora de montar uma paginação,
precisava saber o total que um sql poderia ter e mostrar as paginas com
os registros e os totais encontrados.

Problema: Tive que fazer um relacionamento com outra tabela que
retornava mais de uma vez o mesmo registro, então seria fácil, bastava
colocar um GROUP BY pelo código auto incrementável que estaria
resolvido e retornaria somente 1 registro. Mas o buraco era mais
embaixo, pois se colocar um GROUP BY quando se tem um COUNT o resultado
é o total de registros encontrados por usuário, no caso 2 para um
usuário, 3 para outro, enfim, o que estava precisando é tanto na
contagem total quanto no retorno da busca com os registros removessem
os duplicados:

SELECT count(distinct(codigo))
FROM usuarios
GROUP BY codigo

SELECT codigo, nome
FROM usuarios
GROUP BY codigo

Para esse problema pude contar com o Gerente de Projetos da Empresa Decisão Informática - Daniel Henrique Bonioli.

Garanto que já teve gente que precisou disso e não soube como resolver, agora fica aqui registrado para futuras pesquisas!

:D


This is a free Wordpress template provided by Mathew Browne | Web Design | SEO