2017-11-13 5 views
0

サーバーがラップトップにインストールされ、ポート1521で実行され、名前が「orcl」であるoracleデータベースに接続しようとしています。MFCのCDatabaseを使用してOracleサーバーに接続

private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl"; 
private static final String USERNAME = "cosmin"; 
private static final String PASSWORD = "123456"; 
private static Connection conn; 
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 

そして今、私は、MFCを使用したCDatabaseクラスを使用して接続しようとするが、私は接続できない:まず、私はこのコードを使用してJavaとJDBCを使用して接続します。

CDatabase db; 
    TRY{ 
     db.OpenEx(L"ODBC;DRIVER={MICROSOFT ODBC FOR ORACLE};DSN=orcl;[email protected]:1521:orcl;UID=cosmin; PWD=123456"); 

     db.Close(); 
    } CATCH(CDBException, e) { 
     AfxMessageBox(L"Database error: " + e->m_strError); 
    } 

次のエラーが表示されます。データソース名が見つかりません。デフォルトのドライバが指定されていません。どうすればこの問題を解決できますか?

ありがとうございます!

+0

「orcl」という名前のデータソースは、接続文字列に存在するため作成しましたか?次の質問、なぜ地球上でMFCでコーディングしていますか?これは長年の技術である。 – OldProgrammer

答えて

1

私たちに行く場合は、data source nameHereはツールにアクセスする方法です。

そして、あなたはあなたのプログラムに名前を追加する場合:一方

BOOL ret= SQLConfigDataSource(
    NULL, 
    ODBC_ADD_DSN, 
    (LPSTR) "Microsoft Access Driver (*.mdb)\0", 
    (LPSTR) "DSN=MS Access Database\0" 
    "Description=MS Access Database\0" 
    ); 
if(! ret) 
{ 
    AfxMessageBox(_T("The 'Data Source Name' failed to install\nPlease call Tech Support\n800-123-4567")); 
    return FALSE; 
} 

、(私はそれを試していない)、あなたはDSN-less connection文字列を使用することができるはずです。しかし、そのようなDSNがないので、あなたはDSN=orcl;できませんことを意味します。

関連する問題