-----------------------------------------------------------------
Arquivo Leiame do Microsoft(R) ActiveX(R) Data Objects verso 2.1 
-----------------------------------------------------------------

(c) 1998 Microsoft Corporation. Todos os direitos reservados.

Este documento fornece informaes de ltima hora ou outras informaes que complementam a documentao do Microsoft ADO.

--------
CONTEDO
--------

1. DESCRIO DO PRODUTO
   
2. NOVOS RECURSOS
2.1 Busca e ndice
2.2 Atualizaes e sincronizao de linhas
2.3 Microsoft OLE DB Persistence Provider
2.4 Microsoft Data Shaping Service para OLE DB
2.5 Microsoft OLE DB Remoting Provider

3. OBSERVAES TCNICAS
3.1 Melhorias de segurana
3.2 Comportamento restritivo
3.3 Personalizando configuraes de segurana

4. ERROS CONHECIDOS, LIMITAES, SOLUES ALTERNATIVAS E OBSERVAES DE LTIMA HORA DA DOCUMENTAO

-----------------------
1. DESCRIO DO PRODUTO
-----------------------

O ActiveX Data Objects (ADO)  uma interface baseada em automao para acesso a dados. O ADO usa a interface OLE DB para acessar uma ampla faixa de fontes de dados, incluindo dados fornecidos atravs de ODBC, mas no se limitando a eles.

Os usurios do RDO e DAO rapidamente estaro confortveis com a programao para ADO, pois o projeto global do ADO deriva da nossa experincia com o desenvolvimento destas interfaces.

O Microsoft Remote Data Service (RDS, servio de dados remotos)  um componente do ADO que fornece conectividade de dados rpida e eficiente e a estrutura de publicao de dados para aplicativos armazenados no Microsoft Internet Explorer. Ele  baseado em uma tecnologia cliente/servidor, distribuda, que funciona atravs dos protocolos de aplicativos HTTP, HTTPS (HTTP atravs de Secure Sockets layer) e DCOM. Usando controles ActiveX de reconhecimento de dados, o RDS fornece programao de acesso a dados no estilo do Microsoft Visual Basic(R) para desenvolvedores da Web que precisam construir aplicativos distribudos e com tratamento intensivo de dados para uso atravs de intranets corporativas e da Internet.

-----------------
2. NOVOS RECURSOS
-----------------

O ADO 2.1 adiciona vrios novos recursos para desenvolvedores.

2.1 Busca e ndice
O mtodo Seek e a propriedade Index adicionam rpida localizao de linhas baseada em ndice em um conjunto de registros.

2.2 Atualizaes e sincronizao de linhas
O novo modo de "correo de linhas" oferece ao usurio o controle personalizado de atualizaes e sincronizao de linhas para conjuntos de registros criados por uma operao JOIN. Sete novas propriedades dinmicas controlam o comportamento de cinco mtodos existentes.

2.3 Microsoft OLE DB Persistence Provider
O Microsoft OLE DB Persistence Provider, em conjunto com os mtodos Save e Open do objeto de conjunto de registros, salva e restaura um conjunto de registros em um arquivo. Com esta verso, um conjunto de registros pode ser salvo no formato Extensible Markup Language (XML), a maneira padro de definir marcas especificadas pelo usurio para dados transportados atravs da Internet.

2.4 Microsoft Data Shaping Service para OLE DB
O Microsoft Data Shaping Service para OLE DB, servio de formatao de dados da Microsoft para OLE DB, que oferece suporte a formatao de dados, agora pode:

2.4.1 Reformatar um conjunto de registros formatado anteriormente. Para oferecer suporte a este recurso, os conjuntos de registros agora possuem uma propriedade Name que existe enquanto dura a conexo.

2.4.2 Realizar clculos agregados em uma coluna em qualquer nvel de um conjunto de registros formatado, no apenas o filho imediato do pai. Este recurso usa nomes de captulos totalmente qualificados para formar um caminho para o nvel e coluna desejados.

2.4.3 Os comandos COMPUTE parametrizados podem possuir um nmero arbitrrio de clusulas COMPUTE intervenientes entre a clusula PARAMETER e o argumento do parmetro.

2.5 Microsoft OLE DB Remoting Provider
O Microsoft OLE DB Remoting Provider se torna um provedor de servio padro e adquire novas propriedades dinmicas para um melhor desempenho, maior controle do usurio e compatibilidade retroativa com o ADO 2.0.


-----------------------
3. OBSERVAES TCNICAS
-----------------------

3.1 Melhorias de segurana

Esta verso inclui melhorias de segurana para objetos ADO e RDS de forma que algumas das operaes sejam restringida quando o Internet Explorer estiver
executando em modo de "segurana".

3.1.1. Zonas
Voc pode definir configuraes de segurana diferentes para "zonas" diferentes no Internet Explorer 4.0 para personalizar o comportamento de objetos ADO/RDS nestas zonas. As quatro zonas a seguir esto definidas no Internet Explorer 4.0:
*  Zona da Internet
*  Zona da intranet local
*  Zona de sites restritos
*  Zona de sites confiveis

3.1.2. Nveis de segurana
Voc pode especificar um nvel de segurana a ser usado para cada uma destas zonas. Os nveis de segurana a seguir esto disponveis para cada zona:
*  Alto
*  Mdio
*  Baixo
*  Personalizado

Como qualquer outro controle do ActiveX, para que objetos ADO/RDS funcionem completamente no Internet Explorer 4.0, o nvel de segurana deve ser definido como 'Mdio' ou 'Alto'. Configuraes personalizadas so usadas para definir que objetos ADO/RDS se comportem em modo seguro ou no seguro.

3.2 Comportamento restritivo

Por padro, quaisquer operaes no seguras em objetos ADO/RDS no Internet Explorer 4.0 resultaro em um prompt do usurio ao acessar pginas da 'Zona confivel local', 'Zona de sites confiveis' e 'Zona da Internet'. As operaes no seguras em objetos ADO/RDS so desativadas, por padro, para pginas carregadas da 'Zona de sites restritos'. O comportamento de ADO/RDS ao executar nestes modos  descrito a seguir:

3.2.1 Objetos seguros
Os seguintes objetos so considerados 'seguros'. Isto significa que as operaes no seguras (detalhadas no item 3.2.3) no so permitidas em um ambiente seguro (por exemplo, Internet Explorer, por padro; a menos que sejam usadas configuraes personalizadas para executar em um modo no seguro) e permitidas em um ambiente no seguro (por exemplo, Visual Basic).
a. Objeto RDS.DataControl
b. Objeto RDS.DataSpace
c. Objeto de conjunto de registros ADO

3.2.2 Objetos no seguros
Os seguintes objetos so considerados 'no seguros'. Eles no podem ser criados direta ou indiretamente (e fornecidos a um usurio) ao operar em um ambiente seguro.
a. Objeto RDSServer.DataFactory
b. Objeto de conexo ADO
c. Objeto de comando ADO

3.2.3 Operaes no seguras em objetos seguros
As operaes a seguir so consideradas no seguras nos objetos 'seguros': RDS.DataControl, RDS.DataSpace e conjunto de registros ADO. Estas operaes no so permitidas em um ambiente seguro, mas so permitidas em um ambiente no seguro.

a. RDS.DataControl
i) Todos os cenrios de duas camadas e DCOM no objeto RDS.DataControl. Isto significa que voc no pode abrir conexes de bancos de dados em sua mquina local ou a partir de servidores aos quais voc se conecta usando o protocolo DCOM.
ii) Todas as operaes de trs camadas atravs de HTTP so restritas ao servidor a partir do qual a pgina foi descarregada. Isto significa que a propriedade Server sobre o objeto RDS.DataControl deve ser igual ao nome do host (http://servidor) a partir do qual a pgina foi descarregada.

b. RDS.DataSpace
i) Todos os cenrios de duas camadas e DCOM no objeto RDS.DataSpace. Isto significa que voc no pode usar o objeto RDS.DataSpace para chamar objetos comerciais em sua mquina local ou atravs do protocolo DCOM.
ii) Todos os cenrios de trs camadas atravs de HTTP so restritos ao servidor do qual a pgina foi descarregada. Isto significa que o segundo parmetro na chamada do mtodo CreateObject no objeto DataSpace deve apontar para o mesmo servidor do qual a pgina foi descarregada.

d. Conjunto de registros ADO
i) Efetuando qualquer conexo em que o provedor no  MS Remote. Portanto, a seqncia da conexo deve iniciar com "Provedor=MS Remote". A marca "Remote Server" na seqncia da conexo tambm deve ter o mesmo nome que o servidor do qual a pgina foi descarregada. Conexes locais de duas camadas e DCOM no so permitidas.
ii) Operaes de persistncia local, como salvar um conjunto de registros em um sistema de arquivos local e abrir um conjunto de registros a partir de um arquivo na mquina local.

3.3 Personalizando configuraes de segurana

O comportamento de ADO/RDS  controlado pela configurao da opo 'Inicializar e executar scripts de controles ActiveX no marcados como seguros'.  possvel alterar as configuraes de segurana, alterando o nvel de segurana de uma zona especfica. As configuraes padro da opo 'Inicializar e executar scripts de controles ActiveX no marcados como seguros' para a zona da intranet so da seguinte maneira:
Nvel de segurana = Alto		Valor = "Desativar"
Nvel de segurana = Mdio		Valor = "Desativar"
Nvel de segurana = Baixo		Valor = "Prompt"

Para configuraes padro em outras zonas de segurana, consulte a documentao do Internet Explorer.

Alterando o nvel de segurana, voc pode alterar o comportamento de objetos de conjunto de registros ADO desconectados em execuo no navegador. Se voc desejar permitir operaes no seguras e no desejar ser solicitado toda vez que tal operao for tentada, defina explicitamente o valor da opo acima como 'Ativar'. Observe que se voc tentar uma operao no segura (como salvar um conjunto de registros em um arquivo no sistema de arquivos local) em um conjunto de registros ADO obtido do RDS.DataControl, voc deve definir o valor da opo acima para 'Ativar'. A configurao 'Prompt' funciona como 'Desativar' para estes objetos de conjunto de registros (obtidos do RDS.Datacontrol).

Voc pode substituir as configuraes padro, manipulando diretamente as configuraes de personalizao da opo acima. Voc pode escolher entre desativar completamente as operaes no seguras (descritas acima) ou especificar que um aviso seja exibido sempre que tal operao seja tentada ou permitir tal operao sem nenhum aviso. Voc pode definir configuraes diferentes para zonas de segurana diferentes. As etapas a seguir devem ser seguidas para personalizar suas configuraes de segurana para uma zona de segurana especfica:

CUIDADO: Lembre-se de que, ativando 'Inicializar e executar scripts de controles ActiveX no marcados como seguros' (etapa 5 abaixo), voc est permitindo que QUALQUER controle ActiveX, seguro ou no seguro, seja usado a partir das pginas da Web (o que, potencialmente, expe as mquinas dos usurios a controles maldosos ou cdigos de script maldosos). Recomenda-se que voc faa isto apenas nas zonas de segurana da 'intranet' ou 'sites confiveis' e no na zona da 'Internet'.

1. No menu 'Exibir' no Internet Explorer 4.0, selecione 'Opes de Internet' para abrir a caixa de dilogo 'Opes de Internet'. Selecione a guia 'Segurana'.
2. Na lista suspensa 'Zona', selecione a zona para a qual deseja personalizar as configuraes.
3. Selecione 'Personalizar' para a zona selecionada. Isto ativa o boto 'Configuraes' na caixa de dilogo.
4. Clique em 'Configuraes' para abrir a caixa de dilogo 'Configuraes de segurana'.
5. Se desejar ativar operaes no seguras (descritas em 3.2.3) em objetos ADO/RDS sem que qualquer aviso seja exibido, selecione 'Ativar' para a opo 'Inicializar e executar scripts de controles ActiveX no marcados como seguros' na caixa de seleo 'Configuraes de segurana'. Clique em 'OK'.
6. Se voc desejar que um aviso seja exibido sempre que uma operao no segura (descrita em 3.2.3) em objetos ADO/RDS seja tentada, selecione 'Prompt' para a opo 'Inicializar e executar scripts de controles ActiveX no marcados como seguros' na caixa de dilogo 'Configuraes de segurana'. Clique em 'OK'.
7. Se voc desejar desativar completamente operaes no seguras (descritas em 3.2.3) em objetos ADO/RDS, selecione 'Desativar' para a opo 'Inicializar e executar scripts de controles ActiveX no marcados como seguros' na caixa de dilogo 'Configuraes de segurana'. Clique em 'OK'.
8. Se for apropriado, repita estas etapas para personalizar as configuraes de segurana para outras zonas de segurana.
9. Clique em 'OK'.

Agora os objetos ADO/RDS se comportaro no modo personalizado especificado. Estas configuraes afetam o seguinte comportamento de objetos ADO/RDS (conforme descrito em 3.2.3) na zona de segurana especificada: abrindo conexes locais de duas camadas; trabalhando atravs de DCOM; conectando-se a um servidor diferente daquele de onde a pgina foi descarregada originalmente; salvando e abrindo um conjunto de registros para/de arquivos na mquina local.

Se voc definir suas opes de personalizao para 'Prompt', o seguinte aviso  exibido quando uma operao no segura  tentada em objetos ADO/RDS:

'A pgina est acessando uma fonte de dados em outro domnio. Deseja permitir isto?' O usurio tem a opo de responder 'Sim' ou 'No'. Se a resposta for 'Sim', a operao  concluda, caso contrrio, ela falha.

------------------------------------------------------------------------------
4. ERROS CONHECIDOS, LIMITAES, SOLUES ALTERNATIVAS E OBSERVAES DE LTIMA HORA DA DOCUMENTAO
------------------------------------------------------------------------------

4.1 A personificao de cliente no RDS no  suportada atualmente, devido a falta de suporte do sistema operacional.

4.2 Ao criar 'Servidores virtuais' no Internet Information Server 4.0, as duas etapas a seguir so necessrias para configurar o servidor para trabalhar com RDS:

A) Ao configurar o servidor, marque 'Permitir acesso de execuo'.
B) Mova msadcs.dll para vroot\msadc, onde vroot  o diretrio inicial do seu servidor virtual.

4.3 Ao usar o RDS em um servidor IIS, o nmero de segmentos criados por processador pode ser controlado atravs da manipulao do registro no servidor da Web. O nmero de segmentos por processador pode afetar o desempenho em uma situao de alto trfego ou de baixo trfego, mas com cenrios de tamanho de consulta grande. O usurio deve experimentar para obter melhores resultados. O valor especfico a ser ajustado :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCThreads

onde ADCThreads  uma REG_DWORD adicionada pelo usurio. O intervalo de valores vlidos  de 1 a 50. O valor padro  6. Se o valor especificado pela chave de registro for maior que 50, o valor mximo  usado (50). O usurio no deve precisar criar este valor de registro; ele no  includo no registro por padro.

4.4 Por padro, o ADO  instalado com uma configurao RDS Server DataFactory 'segura'. O modo seguro dos componentes do servidor RDS significa que o seguinte  verdadeiro:

	1.  necessrio manipulador com o DataFactory 
	   (isto  determinado por uma configurao de chave de registro)

	2. Nosso manipulador padro, msdfmap.handler, est registrado,
	   presente na lista de manipuladores seguros padro e marcado 
	   como o manipulador padro.

	3. O arquivo Msdfmap.ini  instalado no diretrio do Windows. 
	   Voc deve configurar este arquivo de acordo com suas 
	   necessidades, antes de usar o RDS em modo de trs camadas.

Opcionalmente, voc pode configurar uma instalao de DataFactory irrestrita. O DataFactory pode ser usado diretamente sem o manipulador personalizado. Os usurios ainda podem usar um manipulador personalizado, modificando as seqncias de conexo, mas isto no  necessrio.

Ns fornecemos o arquivo de registro handsafe.reg para configurar as entradas de registro do manipulador para uma configurao segura. Para executar em modo seguro, execute o handsafe.reg. 

Ns fornecemos o arquivo de registro handunsf.reg para configurar as entradas do registro do manipulador para uma configurao irrestrita. Para executar em modo irrestrito, execute o handunsf.reg.

Para obter mais informaes sobre o uso do recurso do manipulador de personalizao do RDS, consulte o artigo tcnico "Using the Customization Handler Feature in RDS 2.0", disponvel em http://www.microsoft.com/data/techmat.htm

4.5 O mtodo Find pesquisa um conjunto de registros na direo especificada a partir da posio da linha atual para o registro que atende aos critrios especificados. Se no foi definida uma posio de linha atual antes da chamada de Find, ocorre um erro.

4.6 Para usar os eventos ADO FetchProgress e FetchComplete com o Visual Basic,  necessrio, no mnimo, o Visual Basic verso 6.

4.7 As operaes a seguir so consideradas 'seguras' para uso em expresses CALC de formatao de dados:

Abs, Asc, Atn, CBool, CByte, CCur, CDate, CDbl, Chr, ChrB, ChrW, Chr$, ChrB$, CInt, CLng, Cos, CSng, CStr, Cvar, CVDate, CVErr, Date, Date$, DateAdd, DateDiff, DatePart, DateSerial, DateValue, Day, DDB, Error, Error$, Exp, Fix, Format, Format$, FV, Hex, Hex$, Hour, IIF, InStr, Int, IPmt, IRR, IsDate, IsEmpty, IsError, IsNull, IsNumeric, IsObject, LCase, LCase$, Left, LeftB, Left$, LeftB$, Len, Log, LTrim, LTrim$, Mid, Mid$, Minute, MIRR, Month, Now, NPer, NPV, Oct, Oct$, Pmt, PPmt, PV, QBColor, Rate, RGB, Right, RightB, Right$, RightB$, Rnd, RTrim, RTrim$, Second, Sgn, Sin, SLN, Space, Space$, Sqr, Str, Str$, StrComp, StrConv, String, String$, SYD, Tan, Time,Time$, Timer, TimeSerial, TimeValue, Trim, Trim$, TypeName, UCase, UCase$, Val, VarType, Weekday, Year

4.8 O ADO 2.1 no oferece suporte a objetos de conjunto de registros hierrquicos persistentes no formato XML. 

4.9  Voc no pode atualizar os dados em um conjunto de registros somente leitura salvando os dados como XML e editando o arquivo XML. Ocorrer um erro quando voc tentar abrir o conjunto de registros do arquivo XML novamente, se os dados XML foram alterados.

4.10 Quando usar adUseClient ou remoting contra o SQL Server 6.5 Service Pack 4, o uso da palavra chave DISTINCT em consultas ser ignorado para conjuntos de resultados atualizveis. Este  um problema do SQL Server e deve ser resolvido em um service pack futuro.

4.11 Os valores de DataTypeEnum listados no tpico "Propriedade de tipo" no "Guia de referncia do programador de objetos de dados ActiveX" contm erros. Os valores de enum a seguir esto listados, mas no podem ser usados:

adArray, adByRef, adVector

Os valores a seguir esto faltando na lista, mas existem e podem ser usados:

adChapter     Um valor de captulo de 4 bytes usado para identificar linhas em um conjunto de linhas filho (DBTYPE_HCHAPTER).

adDBFileTime  Um valor de hora de arquivo (DBTYPE_DBFILETIME).

adFileTime    Um valor de 64 bits que representa o nmero de intervalos de 100 nanossegundos desde 1 de janeiro de 1601 (DBTYPE_FILETIME).

adPropVariant Uma PROPVARIANT de automao (DBTYPE_PROP_VARIANT).

adVarNumeric  Um valor numrico (somente objeto de parmetro).

4.12 A lista de valores vlidos para o parmetro Options do mtodo Execute de objetos de conexo e de comandos contm erros. O valor ExecuteOptionEnum a seguir est listado incorretamente duas vezes. Ele deve ser listado apenas uma vez, da seguinte forma:

adCmdTable    Indica que o ADO deve avaliar o CommandText como uma tabela e gerar uma consulta SQL para retornar todas as linhas da tabela nomeada em CommandText.

O valor de CommandTypeEnum est faltando na lista mas existe e pode ser usado:

adCmdFile     Indica que o provedor deve avaliar o CommandText como um nome de arquivo.

Os valores de ExecuteOptionEnum a seguir esto faltando na lista mas existem e podem ser usados:

adAsyncFetchNonBlocking   Indica que o segmento principal nunca  bloqueado enquanto efetua busca. Se a linha solicitada no foi buscada, a linha atual  movida automaticamente para o fim do arquivo.

adExecuteNoRecords        Indica que o CommandText  um comando ou um procedimento armazenado que no retorna linhas (por exemplo, um comando que somente insere dados). Se alguma linha  recuperada, ela  descartada e no  retornada. Sempre combinado com adCmdText ou adCmdStoredProc. 

4.13 A lista de valores de QueryType Enum do mtodo OpenSchema de um objeto de conexo contm erros. Os valores a seguir esto faltando na lista, mas existem e podem ser usados:

Enum			Colunas de restrio

adSchemaDBInfoKeywords	nenhuma

adSchemaDBInfoLiterals	nenhuma

adSchemaCubes		CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME

adSchemaDimensions	CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME
			DIMENSION_NAME
			DIMENSION_UNIQUE_NAME

adSchemaHierarchies	CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME
			DIMENSION_UNIQUE_NAME
			HIERARCHY_NAME
			HIERARCHY_UNIQUE_NAME

adSchemaLevels		CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME
			DIMENSION_UNIQUE_NAME
			HIERARCHY_UNIQUE_NAME
			LEVEL_NAME
			LEVEL_UNIQUE_NAME

adSchemaMeasures	CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME
			MEASURE_NAME
			MEASURE_UNIQUE_NAME

adSchemaProperties	CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME
			DIMENSION_UNIQUE_NAME
			HIERARCHY_UNIQUE_NAME
			LEVEL_UNIQUE_NAME
			MEMBER_UNIQUE_NAME
			PROPERTY_TYPE
			PROPERTY_NAME

adSchemaMembers		CATALOG_NAME
			SCHEMA_NAME
			CUBE_NAME
			DIMENSION_UNIQUE_NAME
			HIERARCHY_UNIQUE_NAME
			LEVEL_UNIQUE_NAME
			LEVEL_NUMBER
			MEMBER_NAME
			MEMBER_UNIQUE_NAME
			MEMBER_CAPTION
			MEMBER_TYPE
			Operador tree (consultar abaixo)

Observe que os sete ltimos valores de Enum (adSchemaCubes a adSchemaMembers) devem ser usados com provedores de dados multidimensionais. Para obter mais informaes, inclusive a definio da restrio do operador tree de adSchemaMembers, consulte o "Guia de referncia do programador de OLE DB para OLAP".

4.14 Os valores de AffectEnum listados no tpico "Mtodo CancelBatch" no "Guia de referncia do programador de ActiveX Data Objects" contm um erro. Os valores a seguir esto faltando na lista, mas existem e podem ser usados:

adAffectAllChapters     Cancelar alteraes pendentes para todos os captulos.

4.15 O valor de adModeShareDenyNone ConnectModeEnum est descrito incorretamente no tpico "Propriedade de modo". Ele deveria estar listado da seguinte forma:

adModeShareDenyNone	Permitir que outros abram conexo com quaisquer permisses. Nem acesso de leitura nem de gravao podem ser negados a outros.

4.16
A propriedade Index anteriormente retornava um erro se nenhum ndice estivesse definido no objeto Recordset.
A partir do ADO 2.1 no MDAC 2.1 Service Pack 1, ela retorna uma seqncia de caracteres vazia e uma indicao de que a operao obteve xito.
