Compartilhar via


CDatabase::Open

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

virtual BOOL Open( 
   LPCTSTR lpszDSN, 
   BOOL bExclusive = FALSE, 
   BOOL bReadOnly = FALSE, 
   LPCTSTR lpszConnect = _T("ODBC;"), 
   BOOL bUseCursorLib = TRUE  
);

Parâmetros

  • lpszDSN
    Especifica um nome da fonte de dados — um nome registrado com ODBC com o programa de administrador ODBC. Se um valor de um DSN é especificado em lpszConnect (no formulário DSN=<data-source>“"), não deve ser especificado novamente em lpszDSN. Em esse caso, lpszDSN deve ser NULO. Caso contrário, você pode passar NULO se você quiser apresentar ao usuário uma caixa de diálogo de fonte de dados em que o usuário pode selecionar uma fonte de dados. Para obter mais informações, consulte comentários.

  • bExclusive
    Não suportado em esta versão da biblioteca de classes. Atualmente, uma declaração falhará se esse parâmetro é Verdadeiro. A fonte de dados é aberta sempre como compartilhada (não exclusiva).

  • bReadOnly
    Verdadeiro se você pretende a conexão ser somente leitura e proibir atualizações para a fonte de dados. Todos os conjuntos de registros dependentes herdam este atributo. o valor padrão é Falso.

  • lpszConnect
    Especifica uma cadeia de conexão. A cadeia de conexão concatena informações, possivelmente incluindo um nome da fonte de dados, um ID de usuário válido na fonte de dados, uma cadeia de caracteres de autenticação de usuário (senha, se a fonte de dados requer um), e outras informações. A cadeia de conexão inteira deve ser prefixados pela cadeia de caracteres “; ODBC” (maiúsculas ou minúsculas). “; ODBCa cadeia de caracteres” é usada para indicar que a conexão é a uma fonte de dados ODBC; isso é para compatibilidade para cima quando as versões futuras de biblioteca de classes podem suportar fontes de dados não ODBC.

  • bUseCursorLib
    Verdadeiro se você desejar que o DLL da biblioteca do cursor ODBC a ser carregado. 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. o valor padrão é Verdadeiro. 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.

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.

Dica

Chame a função de membro de OpenEx é a maneira preferencial para se conectar a uma fonte de dados e para inicializar o objeto de banco de dados.

Se os parâmetros na chamada de Abrir 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 do usuário. Quando você chama Abrir, a cadeia de conexão, lpszConnect, 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 Abrir para obter informações do usuário, como uma senha, o que adicionar informações à cadeia de conexão que você passa a Abrir. 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 Abrir 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 5 em Windows SDK.

É 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, Abrir gera CDBException.

Exemplo

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

if (bDefault)
{
   // Connect the object to a data source (no password) 
   // the ODBC connection dialog box will always remain hidden
   m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
   // ...Or, query the user for all connection information
   m_dbCust.Open(NULL);
}

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe incorporadas

Gráfico da hierarquia

CDatabase::OpenEx

CDatabase::CDatabase

CDatabase::Close

Classe CDBException

CRecordset::Open