ARQUIVO: MDACCON.EXE usando conexão seqüências com ODBC/OLEDB/ADO/RDS

Traduções deste artigo Traduções deste artigo
ID do artigo: 193332 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Mdaccon.exe é um exemplo que que demonstra o uso de driver ODBC e OLE DB Provider seqüências de conexão. Quatro projetos separados, um cada um no C++, Visual Basic for Applications e Java, bem como a C++ OLE DB consumidor Application, demonstre a variedade e o uso específico de seqüências de caracteres de conexão para drivers utilizados e provedores. Discussão adicional está incluído nos tópicos a seguir:
  • Seqüências de conexão para ODBC e OLE DB.
  • Seqüências de conexão para drivers ODBC.
  • Usando um DSN criado no Gerenciador de driver de ODBC para um ODBC driver.
  • Usando uma conexão DSN menor para um driver de ODBC.
  • Usando um provedor de banco de dados OLE nativo.
  • Seqüências de conexão em OLE DB consumidor aplicativos.

Mais Informações

O seguinte arquivo está disponível para download no Centro de download da Microsoft:
Mdaccon.exe
Para obter informações adicionais sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
119591Como obter arquivos de suporte da Microsoft a partir de serviços online
Microsoft examinou esse arquivo em busca de vírus. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo. O código a seguir foi escrito usando ActiveX Data Objects (ADO). No entanto, ela pode ser facilmente usada no serviço de dados remoto. Se você remover o "PROVIDER =...;" sintaxe, a mesma seqüência de conexão pode ser usada em ODBC, MFC ODBC, DAO (Data Access Objects), DAO com ODBCDirect ou objetos de dados remoto (RDO).

Dentro do arquivo Mdaccon.exe, os projetos ADOVB ADOVC e ADOVJ demonstram esse mesmo código de exemplo em Visual Basic, Visual C++ e Visual J ++ respectivamente. OLEDBCON demonstra abrindo conexões mesmas em um aplicativo do consumidor de banco de dados OLE.

Seqüências de conexão para ODBC e OLE DB

Os aplicativos criados usando ODBC, MFC ODBC, DAO (Data Access Objects) e objetos de dados remoto (RDO) podem usar seqüências de caracteres de conexão para invocar um driver de ODBC específico para retornar dados de um armazenamento de dados subjacente. Aplicativos usando OLE, ActiveX Data Objects (ADO) e o Remote Data Service (RDS) podem usar as seqüências de caracteres de conexão para invocar um específico OLE DB Provider para retornar dados ou usar o provedor OLE DB para drivers ODBC para invocar um driver de ODBC. A sintaxe para seqüências de conexão entre drivers ODBC e provedores do OLE DB é semelhante, mas existem diferenças na sintaxe dependendo do armazenamento de dados subjacente, (por exemplo, Microsoft Access, Oracle, SQL Server e assim por diante).

Mdaccon.exe usa um subconjunto mínimo de aplicativos de exemplo para demonstrar as seqüências de caracteres de conexão. Exemplos de ADO três (um de cada em C++, VBA e Java) demonstram driver ODBC e OLE DB Provider seqüências de conexão. A seqüência de conexão do ODBC driver usada no exemplo de ADO é idêntica ao que você deve usar se usando ODBC, MFC ODBC, DAO, RDO ou o RDS. A sintaxe do ADO para um provedor OLE DB é específica para ADO e o RDS. Finalmente, um quarto exemplo de aplicativo em C++ demonstra o uso de seqüências de OLE DB Provider caracteres de conexão para um aplicativo de consumidor de banco de dados OLE.

Seqüências de conexão para drivers ODBC

Seqüências de conexão ODBC normalmente se referir a um nome de fonte de dados (DSN) que é definido no Administrador ODBC (encontrada no painel de controle). O administrador ODBC permite que você definir um dos três tipos de DSNs:
  • DSN de usuário: DSNs definidos para o usuário atualmente conectado somente!
  • Arquivo DSN: DSNs armazenados em um arquivo (independente de qualquer usuário).
  • Sistema DSN: DSNs do compartilhados por todos os usuários e serviços (no Windows NT).
Um DSN é simplesmente uma maneira conveniente para armazenar informações de conexão que teria caso contrário, a ser especificado em uma seqüência de conexão. No entanto, você pode usar o que é chamado uma seqüência de conexão sem DSN e explicitamente enumerar todas as informações de conexão no seu independente de aplicativo de administrador de ODBC. O arquivo Mdaccon.exe e exemplos do código que siga mais adiante neste artigo, demonstre como DSN (usuário ou sistema) e seqüências de conexão sem DSN.

A sintaxe para um DSN, DSN do sistema ou DSN de arquivo a seguir:
{DSN = name|FileDSN = filename}; [banco de dados = banco de dados;] uid = userid; pwd = senha
Ao usar um DSN, o driver, fonte de dados/servidor e banco de dados talvez já tenha sido especificados pelo administrador do ODBC e geralmente não precisam ser especificado na seqüência de conexão. Você pode especificar um parâmetro de banco de dados com um DSN para se conectar a um banco de dados diferente.

Sempre é uma boa idéia para incluir o parâmetro de banco de dados quando você usar um DSN. Isso garante que você se conectar ao adequado banco de dados porque outro usuário pode foram alterados o banco de dados padrão desde que você verificou se a definição do DSN. Sintaticamente, não há nenhuma diferença entre um DSN e o DSN do sistema.

Sintaxe sem um DSN (conexão sem DSN) a seguir:
driver = drivername; Server = nome_do_servidor; Database = banco de dados; uid = userid; pwd = senha
Com Windows NT e Windows 95 sistemas operacionais, na caixa de diálogo DSN de sistema do administrador do ODBC, fontes de dados e os respectivos drivers (ODBC) são enumerados.

Para os desenvolvedores usando OLE DB, ADO ou RDS, essa sintaxe de seqüência de caracteres de conexão é válido, embora talvez queira adicionar a PROVIDER = cláusula, da seguinte maneira, para indicar que você deseja passar o provedor OLE DB para drivers ODBC:
Provedor MSDASQL; =...
Como o provedor MSDASQL é o provedor de OLE padrão (para ODBC) para o ADO, você geralmente consulte seqüências de conexão que omita o parâmetro do provedor. É recomendável para incluir o parâmetro do provedor explicitamente para evitar confusão.

Usando um DSN criado no Gerenciador de driver de ODBC para um driver de ODBC

As seguintes linhas de três código demonstram conectando-se ao ODBC DataSources, respectivamente, criadas para o Microsoft Access, SQL Server e Oracle. O DSN do Access é OLE_DB_Nwind_Jet, criado pelo Data Access Software Development Kit (SDK) para o Microsoft Access Nwind.mdb banco de dados. O SQL Server DSN é LocalServer, criada pelo SQL Server quando instalado em um computador. O DSN do Oracle é dseOracleDSN, nesse caso criada manualmente em um computador executar utilitários de cliente Oracle.
   ' Access ODBC Driver via DSN
   con1.Open "PROVIDER=MSDASQL;" & _
             "DSN=OLE_DB_NWind_Jet;" & _
             "UID=admin;PWD=;"

   ' Oracle ODBC Driver via DSN
   con1.Open "PROVIDER=MSDASQL;" & _
             "DSN=dseOracle;" & _
             "UID=demo;PWD=demo;"

   ' SQL Server ODBC Driver via DSN
   con1.Open "PROVIDER=MSDASQL;" & _
             "DSN=LocalServer;DATABASE=pubs;" & _
             "UID=<username>;PWD=<strong password>;"
				
para não-OLEDB/ADO/RDS desenvolvedores, você deve remover o PROVIDER =...; sintaxe e ter uma seqüência de conexão que é perfeitamente válida para os desenvolvedores ODBC, ODBC do MFC, ODBCDirect e RDO.

Para desenvolvedores do ADO/RDS, o PROVIDER = MSDASQL; sintaxe é opcional. Por padrão, o ADO e RDS usam o provedor OLE DB para ODBC. No entanto, é recomendável para enumerar especificamente seu provedor. Também para ADO e RDS desenvolvedores, há uma forma alternativa de sintaxe para listar o nome de fonte de dados (DSN), identificação de usuário (UID) e senha (PWD). Essa sintaxe é válida independentemente do provedor ou driver subjacente como há suporte para ele ADO/RDS.

Para todos os drivers de ODBC três, uma forma alternativa de sintaxe poderia ser usada para especificar a fonte de dados, o ID de usuário e senha, conforme mostrado aqui para o driver de ODBC do Microsoft Access:
   Con1.Open "PROVIDER=MSDASQL;" & _

             "DATA SOURCE=OLE_DB_NWind_Jet;" & _
             "USER ID=admin;PASSWORD=;"
				
o uso de "Fonte de dados", "User ID" e "Password" é a sintaxe específica para o ADO e não é viável para qualquer aplicativo ir diretamente para ODBC, ou seja, sem o provedor OLE DB para ODBC. "Fonte de dados" é equivalente a "DSN", "User ID" para "UID" e "Senha" para "PWD", mas somente para aplicativos de criação de seqüências de conexão através de ADO e o RDS. Essa sintaxe também é válida para a discussão DSN menor e o provedor nativo que se seguem.

Há um mais OLE DB/ADO/RDS específico cláusula que podia ser usada, nesse caso com a seqüência de conexão do SQL Server. "Catálogo inicial ="é funcionalmente equivalente a"DATABASE =". No entanto, essa sintaxe é somente suportada se subjacente provedor de banco de dados OLE oferece suporte a essa sintaxe. Isso é mostrado no exemplo de código a seguir para o Microsoft Access ODBC:
   Con1.Open "PROVIDER=MSDASQL;" & _

             "DATA SOURCE=LocalServer;INITIAL CATALOG=pubs;" & _
             "USER ID=<username>;PASSWORD=<strong password>;"
				

Usando uma conexão DSN menor para um driver de ODBC

No exemplo a seguir, observe que o SQL Server e Oracle tem Server = parâmetros, mas o Microsoft Access usa DBQ = para especificar um banco de dados. SQL Server também especifica um catálogo inicial para abrir no servidor com o DATABASE = cláusula.
   '  Access ODBC Driver via DSN-Less
   con1.Open "PROVIDER=MSDASQL;" & _

             "DRIVER={Microsoft Access Driver (*.mdb)};" & _
             "DBQ=C:\...\NWind.mdb;" & _
             "UID=admin;PWD=;"

   '  Oracle ODBC Driver
   con1.Open "PROVIDER=MSDASQL;" & _

             "DRIVER={Microsoft ODBC for Oracle};" & _
             "SERVER=MyOracleServer;" & _
             "UID=demo;PWD=demo;"

   '  SQL Server ODBC Driver
   con1.Open "PROVIDER=MSDASQL;" & _

             "DRIVER={SQL Server};" & _
             "SERVER=MySQLServer;DATABASE=pubs;" & _
             "UID=<username>;PWD=<strong password>;"
				
como nos exemplos DSN, o provedor é especificamente enumerado, mesmo que você pode confiar uso do ADO desse determinado provedor por padrão.

A diferença significativa em cada uma das seqüências de três conexão é o DRIVER = sintaxe. Enquanto compartilhado por todos os exemplos de código três, o conteúdo entre as {} corresponde a sintaxe exata do nome de um driver de ODBC registrado no Gerenciador de driver de ODBC.

A diferença entre cada fonte de dados outra principal é a sintaxe usada para especificar o banco de dados real que está sendo aberto. Para o Microsoft Access o DBQ cláusula é usada para fornecer um caminho para um arquivo .mdb real do Microsoft Access. Para o SQL Server é especificado tanto o nome do servidor como banco de dados para acessar esse servidor. Para Oracle é especificado um valor que corresponde ao nome de um serviço especificado no utilitário de rede rápido do SQL.

Usando um provedor de banco de dados OLE nativo

Observe a seguir que os provedores nativos do Microsoft Access e Oracle OLEDB necessário uma sintaxe de ID de usuário e senha diferente daquele usado em qualquer uma das seqüências de conexão.
   ' Access Provider
   con1.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;" & _

             "DATA SOURCE=C:\...\NWind.mdb;" & _
             "USER ID=admin;PASSWORD=;"

   '  Oracle Provider
   con1.Open "PROVIDER=MSDAORA;" & _

             "DATA SOURCE=MyOracleServer;" & _
             "USER ID=demo;PASSWORD=demo;"

   '  SQL Server Provider
   con1.Open "PROVIDER=SQLOLEDB;" & _

             "DATA SOURCE=MySQLServer;DATABASE=pubs;" & _
             "USER ID=<username>;PASSWORD=<strong password>;"
				
novamente o provedor = cláusula é usada, mas neste momento ele se refere o ProgID do provedor OLE DB nativo seja o provedor OLE DB para drivers ODBC.

Para o Microsoft Access e Oracle, a sintaxe ODBC do DSN, UID e PWD não é suportada. No entanto o SQL Server provedor OLE DB dá suporte ao uso desse caso contrário ODBC específicas sintaxe.

O DATA SOURCE = sintaxe é idêntico do servidor = e DBQ = sintaxe você ver com DSN - menos seqüências de caracteres de conexão.

Para Microsoft Access e Oracle nativo provedores do OLE DB, o DSN =, UID = e PWD =, não há suporte para sintaxe. No entanto, o SQL Server provedor OLE DB reconhece este driver de ODBC; caso contrário sintaxe específica, como mostrado no exemplo a seguir:
    '  SQL Server Provider
    Con1.Open "PROVIDER=SQLOLEDB;" & _
              "DSN=LocalServer;DATABASE=pubs;" & _
              "UID=<username>;PWD=<strong password>;"
				

Seqüências de conexão em aplicativos do consumidor de banco de dados OLE

Exemplos de código anterior utilizado objeto de conexão do ADO. No entanto, e quanto para um aplicativo de consumidor de banco de dados OLE? O equivalente OLE código seria definir os valores das propriedades do provedor para fazer uma conexão. Especificamente, o código equivalente do OLE DB para cada um dos exemplos anteriores faria referência a um ou mais dos seguintes OLE DB propriedades:
   OLE DB Property               Description
   ----------------------------------------------------------------------

   DBPROP_INIT_DATASOURCE         This property is equivalent to DSN= when
                                  using the OLE DB provider for ODBC to go
                                  to an ODBC Datasource.  Otherwise, it
                                  names either the Server (Oracle, SQL
                                  Server Providers) or database file (Jet
                                  Provider) that is to be opened.

   DBPROP_AUTH_USERID             This property is equivalent to the UID=
                                  ODBC syntax.

   DBPROP_AUTH_PASSWORD           This property is equivalent to the PWD=
                                  ODBC Syntax.

   DBPROP_INIT_CATALOG            This property is equivalent to the
                                  DATABASE= ODBC Syntax.

   DBPROP_INIT_PROVIDERSTRING     This property lets you cheat and pass
                                  your existing ODBC Connection String
                                  to the OLE DB Provider for ODBC.
                                  Otherwise it is useful for provider
                                  specific connection information.
				
Mdaccon.exe O arquivo contém um projeto, OLEDBCON, que demonstra conectem Microsoft Access, Oracle e SQL Server através de várias combinações desses OLE DB Properties. Primeiro demonstrado é o uso do provedor OLE DB nativo para cada fonte de dados, várias permutações pretende através do provedor OLE DB para ODBC drivers ODBC para cada fonte de dados.
Microsoft Data Access Components (MDAC) versão 2.6 e posterior não contêm os seguintes componentes do Jet:

Referências

Dados Access SDK; procure em: "Sintaxe de seqüência de conexão"; "Tabela de propriedades".

Microsoft Developer Network: Pesquisar em: "Usando OLE DB Providers com ADO"

O white paper "OLE DB para o programador de ODBC" contém uma discussão útil para criar um OLE DB consumidor aplicativo que estava a base para o exemplo de banco de dados OLE usado com este artigo. Você pode baixar este white paper do seguinte local:
http://msdn.microsoft.com/en-us/library/ms810892.aspx
"Referência do programador de ODBC", capítulo 6 "Conectando-se a uma Data Source ou driver", ISBN 1-57231-416-4.

"Configuração conexão String Parameters in DAO", documento, por Joel Gilman.

Propriedades

ID do artigo: 193332 - Última revisão: segunda-feira, 9 de agosto de 2004 - Revisão: 6.6
A informação contida neste artigo aplica-se a:
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
Palavras-chave: 
kbmt kbdownload kbdatabase kbfile kbinfo kboracle kbprovider KB193332 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 193332

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com