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