quinta-feira, 16 de junho de 2011

Acessando o Firebird via ASP

Fonte: www.activedelphi.com.br

Este artigo demonstra como desenvolver uma aplicação web utilizando a linguagem asp, acessando uma base de dados Firebird. Um caso típico para a aplicação disto é a necessidade de disponibilizar na web algum tipo de informação ou funcionalidade de um sistema local/desktop. Muitos fazem isso via php ou com o próprio delphi. Aqui vai uma outra alternativa
O Firebird é usado na maioria das vezes para ser acessado através de um programa executável (exe). Entretanto ele também pode ser utilizado em aplicações para Web, onde atualmente o banco de dados mais utilizado para é o poderoso MySQL. Entretanto o Firebird não deixa nada a desejar quando usado para esta finalidade também.
No nosso exemplo mostrarei como utilizar o ASP para acessar um banco de dados Firebird através de VisualBasicScript, JavaScript e PerlScript. Apesar de não ser minha linguagem favorita, o ASP servirá para ilustrar o exemplo. Note ainda que o ASP utiliza a tecnologia ADO para acesso ao banco de dados. Isto implica em muitas “camadas” para que o acesso ocorra. Naturalmente isso pode deixar o acesso um pouco lento, mas não é o objeto de estudo deste artigo. Também pressupõe-se que o leitor conheça um pouco da tecnologia ASP.
Nos três casos utilizaresmos os códigos como scripts dentro da página ASP. O Perl entretanto pode ainda ser utilizado como script a parte nos famosos “cgi-bin”. A estrutura básica da conexão será a seguinte:
ASP(asp.dll) -> VBS(vbscript.dll) | JS(jscript.dll) | Perl(PerlSE.dll) -> Oledb(oledb32.dll) -> ODBC(odbc32.dll) -> ODBCfb(odbcfb.dll) -> fbclient(fbclient.dll)
Precisaremos instalar o Microsoft Internet Information Services (IIS - servidor web), o Firebird, o Firebird ODBC Driver e o ActiveState Perl.
Para instalar o IIS:
1.Vá até o Painel de Controle,
2.Adicionar ou Remover Programas,
3.Adicionar ou Remover Componentes do Windows,
4.Marque a opção Internet Information Services (IIS),
5.Coloque o CD do Windows no Drive e click em avançar.
Para instalar o Firebird, faça download do programa na página official do Firebird e proceda a instalação padrão (superserver).
Para instalar o Firebird ODBC Driver, faça download do programa no site da IBPhoenix e proceda a instalação com as opções padrão.
Para instalar o ActiveState Perl, faça download do programa no site da ActiveState e proceda a instalação com as opções padrão.
Antes de criar a página, precisamos configurar a conexão:
1.Vá até o Painel de controle,
2.Ferramentas administrativas,
3.Fontes de dados (ODBC),
4.Fontes de Dados do Sistema e click em adicionar.
5.Selecione o driver “Firebird/InterBase(r) driver” e click em concluir.
6.Preencha os campos com os dados abaixo:

DSN
: examples
Database
: C:\Arquivos de programas\Firebird\Firebird_2_1\examples\empbuild\EMPLOYEE.FDB
Client
: C:\Arquivos de programas\Firebird\Firebird_2_1\bin\fbclient.dll
Database Account
: sysdba
Password
: masterkey
Transaction
: nowait
Se utilizar uma versão diferente de 2.1, o nome do banco de dados e DLL cliente podem alterar. Caso tenha mudado a senha do sysdba, também lembre-se de colocar a correta. Você pode clicar no botão “Testar Conexão” para se certificar de que tudo deu certo.
Digite o conteúdo abaixo e salve em C:\Inetpub\wwwroot\firebird.vbs.asp:
<% @LANGUAGE = VBScript %>
<%
Dim oConn, oRs, i
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Driver=Firebird/InterBase(r) driver;Data Source=examples"
Set oRs = oConn.Execute("SELECT * FROM PHONE_LIST")
Response.Write("")
Do while (Not oRs.eof)
 Response.Write("")
 For i = 0 to (oRs.fields.count - 1)
  Response.Write("")
 Next
 Response.Write("")
 oRs.MoveNext 
Loop
Response.Write("
" & oRs(i) & "
") oRs.close oConn.close %>
Digite o conteúdo abaixo e salve em C:\Inetpub\wwwroot\firebird.js.asp:
<% @LANGUAGE = JavaScript %>
<%
var oConn, oRs, i
oConn = Server.CreateObject("ADODB.Connection");
oConn.Open("Driver=Firebird/InterBase(r) driver;Data Source=examples");
oRs = oConn.Execute("SELECT * FROM PHONE_LIST");
Response.Write("");
while (!oRs.eof) {
 Response.Write("");
 for (i = 0; i <= oRs.fields.count - 1; i++) {
  Response.Write("");
 }
 Response.Write("");
 oRs.MoveNext;
} 
Response.Write("
" + oRs(i) + "
"); oRs.close(); oConn.close(); %>
Digite o conteúdo abaixo e salve em C:\Inetpub\wwwroot\firebird.pl.asp:
<% @LANGUAGE = PerlScript %>
<%
use OLE;
$objConn = CreateObject OLE "ADODB.Connection";
$objConn->Open("Driver=Firebird/InterBase(r) driver;Data Source=examples");
$objRS = $objConn->Execute("SELECT * FROM PHONE_LIST;");
$Response->Write("\n");
while (!$objRS->EOF) {
 $Response->Write("\n");
 for ($i = 0; $i <= $objRS->Fields->Count - 1; $i++) {
  $Response->Write("\n");
 }
 $Response->Write("\n");
 $objRS->MoveNext;
}
$objConn->Close;
$objRS->Close;
$Response->Write("
" . $objRS->Fields($i)->value . "
"); %>
Os códigos acima instanciam o ADO, criam uma conexão com o ODBC, executam o comando e preenchem o resultado na tela. São utilizados um objeto Connection e um RecordSet para isso.
Abra seu navegador web e nele abra três guias. Na 1ª digite: http://localhost/firebird.vbs.asp; na 2ª http://localhost/firebird.js.asp e na 3ª http://localhost/firebird.pl.asp. Você verá o resultado sendo preenchido nas respectivas páginas.
Caso queira confirmar, utilize o FlameRobin para acessar a View e comparar o resultado. Apesar de ser um exemplo simples, ele ilustra o problema.

Nenhum comentário:

Postar um comentário