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