JQuery Datepicker + PHP + SQL Server

Essa semana aconteceu um episodio curioso, enfrentei um problema de formatação de datas, na qual demorei a resolver, o fato é que o JQuery oferece um plugin de Calendário, e juntamente extensões de formatação de datas de Diversos idiomas, pois bem, se aproveitando disso, fui logo buscando em meu script o nosso “pt-BR”, assim exibe “bonito” para os clientes, porem o problema veio ao tentar dar um insert no SQL Server, que não aceitava a variável string como data, ou seja a data dd/mm/yy não grava, pois o SQL Server tem formato yy/mm/dd. Meu objetivo neste tutorial de hoje é ajudar a mais pessoas que estão passando por esta mesma dificuldade, então vamos lá.

1º Baixe o Jquery Datepicker em:  http://jqueryui.com/demos/datepicker/

Reparem no menu a sua direita, existem diversos tipo de datepiker, o que utilizei foi “Dates in other months”, que ao clicar no campo text aparece um calendário pequeno para clicar no dia de escolha, esse exemplo fica em : http://jqueryui.com/demos/datepicker/#other-months  veja na imagem abaixo:

2º em seu código Javascript, dentro da tag <head> acrescente o arquivo jquery na qual fez o download, segue abaixo um exemplo, pois os caminhos do arquivo variam de acordo com o local onde o deixou.

3º Como ja foi citado anteriormente o arquivo também com as datas de acordo com o idioma, mas isto dificulta a formatação de data, segue abaixo um exemplo de como seria o arquivo de data no formato do Brasil.

4º Em seguida basta apenas acrescentar as funçoes necessárias, passando a forma de exibição da data e a forma de gravação, comigo ficou mais ou menos assim:


Para facilitar sua visualização e entendimento segue abaixo uma imagem do código.

 

Em seguida, na sua tag text onde insere a data e chama o calendário, acrescente uma linha, que ficara mais ou menos como está na imagem abaixo:

Explicação: na linha onde o tipo é igual a text (type:”Text”) o id é o nome da formatação original do datapicker ou seja ele mostra como (dd/mm/yy), e na linha abaixo onde o tipo é igual hidden, o id passa a ser dbDate, ou seja, no código javascript o altFormat da data recebeu o nome de dbDate, e é nesta linha que ele grava no formato do banco de dados (yy-mm-dd).
Para inserir os dados no banco de Dados SQL Server 2008 utilizei as funções :
mssql_init  responsável por iniciar a procedure
mssql_bind que passar os parâmetros, variáveis, e o tipo da variável.
E por fim utilizei o mssql_query que faz o insert na procedure.
Segue abaixo o exemplo utizado para gravar a data:

Repare que na função mssql+blind a variável está sendo passada como SQLCHAR (tipo char) e não como SQLDATE(tipo data), pois essa função não é aceita, então é substituída por char ou varchar, o false é para informar se o parâmetro @DataCadastro é de saída, e 19 é o tamanho do campo.

Espero poder ter ajudado a quem precisa, não foi nada fácil, Boa Sorte!!!                        

Share

PHP5 E SQL SERVER 2008: A dll que comanda as demais

Quando se fala na linguagem de programação PHP já se pensa logo no Banco de Dados Mysql, porém em minha caminhada decidi optar por utilizar o SQL Server 2008, não sabendo das grandes dificuldades que eu iria enfrentar.
Até aquele momento eu estava utilizando o EasyPHP, programa que reúne tudo o que precisamos (PHP + Apache + Mysql), através dele decidi seguir alguns tutoriais da internet para habilitar suas permissões para o SQL Server, não funcionou, decidi usar outra ferramenta o XAMPP, e aconteceu o mesmo, não consegui os resultados que eu gostaria.
Por fim optei pelo WAMPP, segui as seguintes orientações da internet :
1 – Baixar, copiar e colar as dll ntwdblib.dll, php_mssql.dll, php_pdo_mssql.dll nas pastas System32(C:WindowsSystem32), Apache(C:wampbinapacheApache2.2.17bin)
e PHP(C:wampbinphpphp5.3.4ext).
2 – Abrir o arquivo php.ini (abra o servidor Wampp, clique nele, vá em PHP e em php.ini), conforme mostra a imagem a seguir :
3 – abra o arquivo php.ini e dentro dele procure por:
;extension=php_mssql.dll
;extension=php_pdo_mssql.dll

Retire é ponto e virgule de trás da frase, pois o ponto e virgule representa a linha comentada, ficando assim:
extension=php_mssql.dll
extension=php_pdo_mssql.dll
4 – Procure também por [MSSQL] e deixe as configurações desta maneira abaixo:
[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On
; Maximum number of persistent links.  -1 means no limit.
mssql.max_persistent = -1
; Maximum number of links (persistent+non persistent).  -1 means no limit.
mssql.max_links = -1
; Minimum error severity to display.
mssql.min_error_severity = 10
; Minimum message severity to display.
mssql.min_message_severity = 10
; Compatibility mode with old versions of PHP 3.0.
mssql.compatability_mode = Off
; Connect timeout
mssql.connect_timeout = 30
; Query timeout
mssql.timeout = 60
; Valid range 0 – 2147483647.  Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 – 2147483647.  Default = 4096.
;mssql.textsize = 4096
; Limits the number of records in each batch.  0 = all records in one batch.
;mssql.batchsize = 0
; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On
; Use NT authentication when connecting to the server
mssql.secure_connection = On
; Specify max number of processes. -1 = library default
; msdlib defaults to 25
; FreeTDS defaults to 4096
;mssql.max_procs = -1
; Specify client character set.
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
;mssql.charset = “ISO-8859-1”
5 – Abra o Wampp Server novamente, vá em PHP àphp extensions e clique nas seguintes extensões marcadas de vermelho abaixo habilitando-as:
Pronto, esse é o tutorial que todos seguem na internet, se depois de tudo isto não funcionar com você saiba que não é único, aconteceu comigo também, fiquei alguns dias na internet procurando uma maneira de fazer funcionar, todos os tutoriais eram iguais, até que finalmente encontrei a solução, em um site americano, ele falava da conexão utilizando o IIS do Windows 7, poderia não ter nada haver até que em certo ponto ele citou uma nova DLL que fez sentido, trata-se da DLL php_dblib.dll, ou seja a DLL do php que controla a biblioteca de banco de dados. Apartir desse momento vi que só precisava habilitar ela, e tudo funcionou corretamente, então faça o caminho novamente:
Wampp àphp àphp extensions e clique em php_dblib, conforme mostra a figura.
Bom acredito que com você também pode funcionar, boa sorte.
Share

A importância de uma intranet ou um simples sistema de comunicação interno nas empresas. Parte 1

Imagine a seguinte situação, você está no seu trabalho – independente da função que você exerce – seu chefe chega pra você e pede um monte de coisas, tarefas, você na pressa anota tudo num pedaço de papel, rascunhos, mais rascunhos, em seguida o seu colega te chama para ajudar em uma função, ou empurra pra você tentar resolver, outra pessoa te passa uma pilha de papeis para você conferir, outro vem te cobrar as respostas de emails que você não deu, pois foram tantas solicitações urgentes no email que você se preocupou em resolver e esqueceu-se de se preocupar em responder, alguém vem te perguntar sobre algo que você descobre que não foi você quem fez, foi outra pessoa anteriormente, mas sobrou pra você mesmo que o “cara” atual,  tudo na informalidade, nada registrado, nada documentado, nada assinado, e tudo vira uma pilha de gambiarras, o que fazer nestas situações?
Deixar pra lá essa situação?
Não, você pode simplesmente fazer uma sugestão a direção da sua empresa, construir e instalar uma Intranet ou um sistema simples de ocorrências, demandas, ou como queiram chamar, mesmo que a idéia não saia do papel da noite para o dia, certamente começará a dar animo a toda a equipe que, inclusive vai se sentir bem participando do processo de mudanças da empresa, economizar o Maximo de papel hoje é a ordem mais preocupante tanto em relação ao meio ambiente quanto as economias de espaço, além do mais, uma documentação virtual vai garantir a autenticidade, veracidade, e a legitimidade dos fatos.
Share