#include <sql.h> führt Fehlermeldungen



  • Hi Zusammen,

    nachdem ich nun meine ersten Schritte ohne MFC gewagt habe würde ich gerne
    eine Klasse erstellen die mir erlaubt auf einfach Weise mit einer ODBC-Datenbank
    zu interagieren.

    Ich würde gerne mit diesem Tutorial arbeiten, aber sobald ich die Dateien sql.h
    unt sqlext.h inkludiere (gibts das Wort?!) meckert der Compiler an folgendem
    herum:

    [Compiler-Ausgabe]
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlUcode.h(647): error C2061: Syntaxfehler : Bezeichner 'SQLHWND'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlUcode.h(280): error C2061: Syntaxfehler : Bezeichner 'SQLHWND'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2056): error C2086: 'int VOID' : Neudefinition
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2056): error C2501: 'VOID' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2056): error C2143: Syntaxfehler : Es fehlt ';' vor '__stdcall'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2053): error C2625: In anonymer Union wurden keine Datenelemente deklariert
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2052): error C2501: 'tagODBC_VS_ARGS::__unnamed::szCorrelation' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2052): error C2501: 'tagODBC_VS_ARGS::__unnamed::CHAR' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2052): error C2143: Syntaxfehler : Es fehlt ';' vor '
    '
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2051): error C2501: 'tagODBC_VS_ARGS::__unnamed::wszCorrelation' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2051): error C2501: 'tagODBC_VS_ARGS::__unnamed::WCHAR' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2051): error C2143: Syntaxfehler : Es fehlt ';' vor ''
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2049): error C2625: In anonymer Union wurden keine Datenelemente deklariert
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2048): error C2501: 'tagODBC_VS_ARGS::__unnamed::szArg' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2048): error C2501: 'tagODBC_VS_ARGS::__unnamed::CHAR' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2048): error C2143: Syntaxfehler : Es fehlt ';' vor '
    '
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2047): error C2501: 'tagODBC_VS_ARGS::__unnamed::wszArg' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2047): error C2501: 'tagODBC_VS_ARGS::__unnamed::WCHAR' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2047): error C2143: Syntaxfehler : Es fehlt ';' vor ''
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2045): error C2501: 'tagODBC_VS_ARGS::dwFlags' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2045): error C2501: 'tagODBC_VS_ARGS::DWORD' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2045): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'dwFlags'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2044): error C2501: 'tagODBC_VS_ARGS::pguidEvent' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2044): error C2143: Syntaxfehler : Es fehlt ';' vor '
    '
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2034): error C2371: 'DWORD' : Neudefinition; unterschiedliche Basistypen
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2034): error C2501: 'DWORD' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2034): error C2143: Syntaxfehler : Es fehlt ';' vor '__stdcall'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2033): error C2059: Syntaxfehler : ')'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2033): error C2501: 'ODBCSetTryWaitValue' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2033): warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2033): error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'dwValue'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2033): error C2501: 'BOOL' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2033): error C2143: Syntaxfehler : Es fehlt ';' vor '__stdcall'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2023): warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2016): error C2371: 'DWORD' : Neudefinition; unterschiedliche Basistypen
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2016): error C2501: 'DWORD' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2016): error C2143: Syntaxfehler : Es fehlt ';' vor '__stdcall'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2015): error C2501: 'VOID' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2015): error C2143: Syntaxfehler : Es fehlt ';' vor '__stdcall'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2013): error C2078: Zu viele Initialisierungen
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2013): warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2013): error C2065: 'DWORD' : nichtdeklarierter Bezeichner
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(2013): error C2065: 'LPWSTR' : nichtdeklarierter Bezeichner
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlExt.h(1682): error C2061: Syntaxfehler : Bezeichner 'SQLHWND'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(278): error C2501: 'tagSQLGUID::Data4' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(278): error C2501: 'tagSQLGUID::BYTE' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(278): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Data4'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(277): error C2501: 'tagSQLGUID::Data3' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(277): error C2501: 'tagSQLGUID::WORD' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(277): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Data3'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(276): error C2501: 'tagSQLGUID::Data2' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(276): error C2501: 'tagSQLGUID::WORD' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(276): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Data2'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(275): error C2501: 'tagSQLGUID::Data1' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(275): error C2501: 'tagSQLGUID::DWORD' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(275): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Data1'
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(137): error C2501: 'SQLHWND' : Fehlende Speicherklasse oder Typspezifizierer
    c:\Programme\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\SqlTypes.h(137): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'SQLHWND'*
    [/Compiler-Ausgabe]

    Ich bin mir sicher diese Datei vorher nie in irgendeiner Form tangiert zu haben
    und hoffe nun stark einer von Euch kann mir sagen weshalb dieses include nicht
    passt.

    Danke im Voraus,
    Khadgar



  • hast du die windows.h vorneweg? sonst geht es nicht..
    versuch mal dieses rudimentäre beispiel

    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <sql.h>
    #include <sqlext.h>
    
    #define ID_LEN 35
    
    void main(void)
    {
    
    	SQLHANDLE henv;
    	SQLHANDLE hdbc;
    	SQLHANDLE hstmt;
    	RETCODE rc;
    
        SQLCHAR   m_Id[ID_LEN]; 
        SQLCHAR   name[ID_LEN]; 
    	char Statement[50] = {"select * from adressen"};		
    	char dsn[10] = {"test"};
    	char user[5] = {""};
    	char pass[5] = {""};
    
    	long m_bytesRet = SQL_NTS;
    
    	rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    
    	rc = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, 
    			(SQLPOINTER) SQL_OV_ODBC3, SQL_IS_UINTEGER);
    
    	rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    
    	rc = SQLConnect(hdbc, (SQLCHAR *)dsn, SQL_NTS, (SQLCHAR *) user, SQL_NTS, 
    			(SQLCHAR *) pass, SQL_NTS);
    
    	rc = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
    
    	rc = SQLPrepare(hstmt, (SQLCHAR *)Statement, SQL_NTS);
    
    	rc = SQLExecute(hstmt);
    
    	rc = SQLFetch(hstmt);
    
    	if (rc == SQL_NO_DATA_FOUND)
    	{
    		printf("keine daten gefunden");
    		SQLFreeStmt(hstmt, SQL_DROP);
    		SQLDisconnect(hdbc);
    		SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    		SQLFreeHandle(SQL_HANDLE_ENV, henv);
    		exit(0);
    	}
    	else
    	{
            printf ("daten gefunden");
    	    SQLGetData(hstmt, 1, SQL_C_CHAR, m_Id, 10, &m_bytesRet);
            printf ("%s", m_Id);
            SQLGetData(hstmt, 1, SQL_C_CHAR, name,10, &m_bytesRet);
            printf ("%s", name);
    
        }
    	rc = SQLFreeStmt(hstmt, SQL_CLOSE);
    	rc = SQLDisconnect(hdbc);
    	SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    	SQLFreeHandle(SQL_HANDLE_ENV, henv);
    }
    

Anmelden zum Antworten