RDS - Remote Data Services ( Serviços de dados Remotos) é uma tecnologia Microsoft para acesso a dados remotos que permite criar aplicações para banco de dados na Internet. Ë através do RDS que podemos obter conjuntos de registros ADO a partir de um servidor Web via HTTP.
Fluxo RDS |
A tecnologia RDS é usada para trazer recordsets ADO desconectados de um servidor Web para visualização em um Navegador - Internet Explorer . A partir do momento que o recordset ADO desconectado estiver no "Cache" da máquina do cliente , podemos criar , atualizar e excluir dados neste recordset, sendo que todas as alterações serão "bufferizadas" localmente na máquina do cliente. A seguir podemos submeter o recordset ADO desconectado de volta ao Servidor Web para verificação e , se for o caso , armazenar as informações passadas no banco de dados através de comandos SQL.
Para transportar o recordset ADO desconecado do cliente para o servidor podemos usar o protocolo HTTP/HTTPS ou o protocolo DCOM. Você informa ao RDS qual protocolo usar através da configuração da propriedade nome do servidor do RSD Data Control ou do RDS Data Space. Se voce informar como nome do servidor (server name) "http://NomedoServidorWeb" , o RDS utilizará o protocolo HTTP. Se você definir o nome do servidor como "NomedoServidorWeb" o RSD utilizará o protocolo DCOM.
Usando o RSD DataControl
Você poderá recuperar um objeto Recordset ADO na Internet usando o objeto RDS DataControl ; ele tem a capacidade de retornar os objetos Recordsets ADO desconectados para qualquer cliente HTTP. A forma mais simples de fazer isto é executar uma consulta a partir de um servidor WEB usando o objeto RDS DataControl. Vamos ao trabalho:
Option
Explicit Private rdc As RDS.DataControl Private Sub
CmdObter_Click() |
Aqui estamos nos conectando ao banco de dados Biblio_97.mdb - tabela Publishers - ( uma cópia do arquivo biblio.mdb) via DSN(clique no link para ler o artigo a respeito) (criado previamente em minha máquina. ( Voce pode alterar esses valores a vontade)
O nome do servidor - você deve ter pelo menos o Personal Web Server instalado - é o nome do seu servidor definido durante a instalação.
RDS - Data Control e ASP
Podemos usar o RDS Data Control para vincular o resultado de consultas a um ou mais controles visuais ( grid, textbox , combobox , etc...) . Antes devemos esclarecer alguns detalhes, vamos a eles...
Para incorporar um controle ActiveX dentro de uma página Web, precisamos usar o conjunto de tags <OBJECT> ... </OBJECT>. O que vai identificar o objeto ActiveX é o seu CLASSID alfanumérico - um nome longo e dificílimo de memorizar .
Uma ferramenta da Microsoft que facilita a copia do nome CLASSID é a ACTIVEX CONTROL LISTER FOR HTML que exibe todos os controles registrados em sua máquina. Para obter o código HTML que irá inserir o controle clique com o botão direito do mouse sobre o controle e selecione copiar e a seguir cole o conteúdo da área de transferência no código fonte HTML.
A seguir temos um exemplo do código fonte gerado para o controle Label do VB.
<OBJECT
ID="Label Object"
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
WIDTH=80
HEIGHT=30>
</OBJECT>
Lindo !!! nào é mesmo ???
O CLASSID identifica exclusivamente um objeto. Existe ainda um parâmetro adicional chamado CODEBASE que indica onde no servidor a classe pode ser encontrada se não estiver registrada localmente.
Quando o navegador encontra a referência do controle ActiveX , ele usa o CLASSID para verificar o registro da máquina local e checar se o controle esta registrado localmente.
Voltando ao RDS , para criar uma instância de um controle em ASP , podemos usar a seguinte tag OBJECT:
OBJECT
classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID=ADC> <PARAM NAME="SQL" VALUE="Select * from Authors"> <PARAM NAME="SERVER" VALUE="http://<%=Request.ServerVariables("SERVER_NAME")%>"> <PARAM NAME="CONNECT" VALUE="DSN=Teste;UID=;PWD=;"> </OBJECT> |
Aqui o RDS Data Control(identificado pela classid) utiliza um RDS Data Factory para obter um Recordset ADO desconectado com base em um comando SQL. (Ao usar o RDS Data Control , tanto o RDS Data Factory como o RDS Data Space são criados automaticamente).
Vejamos os parâmetros associados com a tag <OBJECT>
Parâmetro | Descrição |
CLASSID | Um número de 128 bits que identifica o tipo de objeto embutido ao sistema.Este identificador é mantido no registro da máquina local . |
CODEBASE | Define a localização do arquivo do objeto que esta sendo chamado se ele não estiver na máquina cliente. |
ID | Defines a document-wide identifier for the embedded object. |
DATASRC | Identifica a fonte de dados usada para se conectar ao controle. |
WIDTH and HEIGHT | Determina as dimensões do controle em pixels |
Obtendo o RDS e usando o RDS Data Control com ASP
O RDS faz parte do Microsofts Data Access Components (MDAC). Você pode conseguir a última versão no site da Microsoft em : http://www.microsoft.com/data.
A maneira mais fácil de usar o RDS é usar um RDS Data Control. Vejamos abaixo um código que mostra como usar o RDS Data Control que obtém os dados da tabela Authors do banco de dados Biblio.mdb e os exibe em um controle vinculado - Um grid da Sheridan.
<%@ LANGUAGE="VBSCRIPT" %>
<HTML> <HEAD> <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1"> <TITLE>Exemplo de uso do RDS Data Control</TITLE> </HEAD> <BODY> <!-- RDS.Data Control --> <OBJECT classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID=ADC HEIGHT=1 WIDTH=1> </OBJECT> <strong>Usando o RDS Data Control</strong> <P> <!-- Controle Grid da Sheridan --> <OBJECT CLASSID="CLSID:AC05DC80-7DF1-11d0-839E-00A024A94B3A" CODEBASE="http://<%=Request.ServerVariables("SERVER_NAME")%>/MSADC/Samples/ssdatb32.cab" ID="GRID" DATASRC="#ADC" WIDTH=750 HEIGHT=200> <PARAM NAME="AllowAddNew" VALUE="TRUE"> <PARAM NAME="AllowUpdate" VALUE="TRUE"> <PARAM NAME="AllowDelete" VALUE="TRUE"> <PARAM NAME="ForeColorEven" VALUE="0"> <PARAM NAME="BackColorOdd" VALUE="-2147483643"> <PARAM NAME="BackColor" VALUE="-2147483643"> </OBJECT> </P> <INPUT TYPE=BUTTON NAME="LoadAll" VALUE="Carregar Todos"> <INPUT TYPE=BUTTON NAME="Cancel" VALUE="Cancelar"> <INPUT TYPE=BUTTON NAME="Save" VALUE="Salvar"> <BR><BR> <INPUT TYPE=BUTTON NAME="MoveFirst" VALUE="Primeiro"> <INPUT TYPE=BUTTON NAME="MovePrev" VALUE="Anterior"> <INPUT TYPE=BUTTON NAME="MoveNext" VALUE="Proximo"> <INPUT TYPE=BUTTON NAME="MoveLast" VALUE="Último"> <SCRIPT LANGUAGE="VBScript"> SUB LoadAll_OnClick
End Sub SUB MoveFirst_OnClick
END SUB SUB MoveNext_OnClick
END SUB SUB MovePrev_OnClick
END SUB SUB MoveLast_OnClick
END SUB SUB Save_OnClick
End Sub SUB Cancel_OnClick
End Sub </SCRIPT> </BODY> </HTML> |
Aqui estamos nos conectando ao banco de dados Biblio_97.mdb - tabela Authors - ( uma cópia do arquivo biblio.mdb) via DSN(clique no link para ler o artigo a respeito) (criado previamente em minha máquina. ( Voce pode alterar esses valores a vontade)
E, vamos ficando por aqui... :-)