DOCUMENT:Q296091 03-JUL-2001 [visualc] TITLE :PRB: MFC AppWizard Doesn't Show Oracle Synonyms w/MS ODBC Driver PRODUCT :Microsoft C Compiler PROD/VER::1.5,2.0,2.1,2.5,2.6,4.2,5.0,6.0 OPER/SYS: KEYWORDS:kbDriver kbMFC kbODBC kbOracle kbVS kbGrpDSMDAC kbDSupport tslic_tslic ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual C++, 32-bit Editions, versions 4.2, 5.0, 6.0 - Microsoft Data Access Components versions 1.5, 2.0, 2.1, 2.5, 2.6 ------------------------------------------------------------------------------- SYMPTOMS ======== When you create a Visual C++ Microsoft Foundation Classes (MFC) AppWizard EXE or DLL with database support, if you select an Oracle data source name (DSN) that is associated with the Microsoft ODBC Driver for Oracle, AppWizard doesn't list the local and public Oracle synonyms in the Select Database Tables window. RESOLUTION ========== You can work around this problem in the following ways: - You can create and use Oracle views instead of Oracle synonyms. - If you are using Visual C++ 6.0, you can use the Microsoft OLE DB Provider for Oracle, instead of the Microsoft ODBC Driver for Oracle, to obtain local synonyms and tables associated with public synonyms. Examples of these workarounds are shown in the "More Information" section. STATUS ====== This behavior is by design. MORE INFORMATION ================ Unlike Microsoft Access and the MFC AppWizard with the Microsoft OLEDB Provider for Oracle, the MFC AppWizard connecting to an Oracle database using the Microsoft ODBC Driver for Oracle doesn't list local (created in the current schema) and public synonyms. Steps to Reproduce Behavior --------------------------- 1. Create a table in schema "SCOTT": CREATE TABLE scott_test(col1 INT) 2. Create a public synonym on this table and give everyone "SELECT" permission: CREATE PUBLIC SYNONYM scott_test_syn FOR scott_test Grant SELECT on scott_test_syn TO PUBLIC 3. Start Visual C++. On the File menu, click New. 4. Click the Projects tab, select MFC AppWizard (exe), type the project name, and then click OK. 5. Accept the defaults and then click Next. 6. Select Database view without file support or Database view with file support, and then click the Data Source button. 7. Select an Oracle ODBC DSN associated with the Microsoft ODBC Drvier for Oracle and click OK. 8. Enter the user name (schema other than SCOTT to perform this test) and password. Click OK. 9. In the Select Database Tables window, the public synonym "scott_test_syn" is not listed. Using this example, you can work around the problem in the following ways: - If you select the Microsoft OLE DB Provider for Oracle (instead of the Microsoft ODBC Driver for Oracle), the MFC App Wizard will list "scott_test", which is the table associated with the public synonym "scott_test_syn". - You can also create a view on the table asssociated with the public synonym in the schema you want to connect to using MFC AppWizard: CREATE VIEW scott_test_view AS SELECT * FROM SCOTT.scott_test; You will then see "scott_test_view" in the list of tables. Additional query words: MFC AppWizard Oracle PUBLIC SYNONYM VIEW ODBC ====================================================================== Keywords : kbDriver kbMFC kbODBC kbOracle kbVS kbGrpDSMDAC kbDSupport tslic_tslic Technology : kbVCsearch kbAudDeveloper kbMDACSearch kbMDAC150 kbMDAC200 kbMDAC210 kbMDAC250 kbMDAC260 kbVC420 kbVC500 kbVC600 kbVC32bitSearch kbVC500Search Version : :1.5,2.0,2.1,2.5,2.6,4.2,5.0,6.0 Issue type : kbprb ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.