Compartilhar via


CDatabase::OpenEx

Chamar essa função de membro para inicializar um objeto recentemente construído de CDatabase .

virtual BOOL OpenEx( 
   LPCTSTR lpszConnectString, 
   DWORD dwOptions = 0  
);

Parâmetros

  • lpszConnectString
    Especifica uma cadeia de conexão ODBC. Isso inclui o nome da fonte de dados bem como informações opcional, como um ID de usuário e senha. Por exemplo, “; DSN=SQLServer_SourceUID=SA; PWD=abc123” é uma cadeia de conexão possível. Observe que se você passar NULO para lpszConnectString, uma caixa de diálogo de fonte de dados solicitará que o usuário selecione a uma fonte de dados.

  • dwOptions
    Uma máscara de bits que especifica uma combinação dos seguintes valores. O valor padrão é 0, que significa que o banco de dados será aberto como compartilhado com acesso de gravação, o DLL da biblioteca do cursor ODBC não será carregado, e a caixa de diálogo de conexão ODBC exibirá somente se não houver informações suficientes para fazer a conexão.

    • CDatabase::openExclusive não suportado em esta versão da biblioteca de classes. Uma fonte de dados é aberta sempre como compartilhada (não exclusiva). Atualmente, uma declaração falha se você especificar esta opção.

    • CDatabase::openReadOnly Abra a fonte de dados como somente leitura.

    • Carga deCDatabase::useCursorLib o DLL da biblioteca do cursor ODBC. A biblioteca do cursor por alguma funcionalidade de driver ODBC subjacente, evitando efetivamente o uso de dynasets (se o driver os suporta). Os únicos cursores suportados se a biblioteca do cursor é carregada são instantâneos estáticos e cursores somente encaminhamentos. Se você planeja criar um objeto do conjunto de registros diretamente de CRecordset sem derivam de ela, você não deve carregar a biblioteca do cursor.

    • CDatabase::noOdbcDialog não exibe a caixa de diálogo de conexão ODBC, independentemente se suficientes informações de conexão é fornecida.

    • CDatabase::forceOdbcDialog de exibição sempre a caixa de diálogo de conexão ODBC.

Valor de retorno

Diferente de zero se a conexão é feita com êxito; se não 0 se o usuário decidir cancelar o quando apresentados uma caixa de diálogo perguntando mais informações de conexão. Em todos os outros casos, a estrutura gera uma exceção.

Comentários

O objeto de banco de dados deve ser inicializado antes que você possa usá-lo para construir um objeto do conjunto de registros.

Se o parâmetro de lpszConnectString em sua chamada de OpenEx não contém informações suficientes para fazer a conexão, o driver ODBC abrir uma caixa de diálogo para obter as informações necessárias de usuário, desde que você não definiu CDatabase::noOdbcDialog ou CDatabase::forceOdbcDialog no parâmetro de dwOptions . Quando você chama OpenEx, a cadeia de conexão, lpszConnectString, particulares é armazenada no objeto de CDatabase e está disponível chamar a função de membro de GetConnect .

Se você desejar, você pode abrir a própria caixa de diálogo antes de chamar OpenEx para obter informações do usuário, como uma senha, e depois informações que o adiciona à cadeia de conexão que você passa a OpenEx. Ou você talvez queira salvar a cadeia de conexão que você passa para que você possa reutilizar na próxima vez que seus chamadas OpenEx do aplicativo em um objeto de CDatabase .

Você também pode usar a cadeia de conexão para vários níveis de autorização de login (cada um para um objeto diferente de CDatabase ) ou transmitir informações fonte de dados específica. Para obter mais informações sobre cadeias de conexão, consulte o capítulo 6 na referência de programador ODBC.

É possível para uma tentativa de conexão para o tempo limite se, por exemplo, o host de DBMS não está disponível. Se a tentativa de conexão falhar, OpenEx gera CDBException.

Exemplo

// m_dbCust is a CDatabase object embedded in a CDocument class. 

// Connect the object to a read-only data source where 
// the ODBC connection dialog box will always remain hidden
m_dbCust.OpenEx(_T("DSN=MFC_ODBCTest;UID=JOES"),
   CDatabase::openReadOnly | CDatabase::noOdbcDialog);

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe incorporadas

Gráfico da hierarquia

CDatabase::Open

CDatabase::CDatabase

CDatabase::Close

Classe CDBException

CRecordset::Open