Embedded SQL Problem mit Postgre und Visual C++

XesperantoX

Mitglied
Hallo,

also ich habe ein Problem mit einem Embedded SQL Code und zwar habe ich eine kleine PostgreSQL Datenbank erstellt und möchte/muss nun über ein C-Programm auf die DB zugreifen. Soweit sogut... um das Ganze zu testen habe ich erstmal nur soweit geschrieben das die DB geöffnet, ein kurzer Text ausgegeben wird und die DB dann wieder geschlossen wird.
Den C-Code habe ich dann mit "ecpg" kompiliert und habe dann auch meine .c-Datei erhalten. Bis hierhin alles okay, aber wenn ich die Datei jetzt in Visual C++ 6.0 öffne und dort kompilieren bzw ausführen will bekomme ich folgende Fehler gemeldet:

Code:
--------------------Konfiguration: EmbeddedC - Win32 Debug--------------------
Linker-Vorgang läuft...
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol _ECPGdisconnect
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol _sqlprint
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol _ECPGget_sqlca
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol _ECPGconnect
Debug/EmbeddedC.exe : fatal error LNK1120: 4 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

EmbeddedC.exe - 5 Fehler, 0 Warnung(en)

Denke es hängt mit den Libaries und den Bibliotheken zusammmen die von PostgreSQL benötigt werden, aber wie kann ich diese denn automatisch einbinden

Die von ecpg kompilierte Datei sieht folgendermaßen aus:
Code:
/* Processed by ecpg (4.1.1) */
/* These include files are added by the preprocessor */
#include "c:\Programme\postgreSQL\8.1\include\ecpgtype.h"
#include "c:\Programme\postgreSQL\8.1\include\ecpglib.h"
#include "c:\Programme\postgreSQL\8.1\include\ecpgerrno.h"
#include "c:\Programme\postgreSQL\8.1\include\sqlca.h"
/* End of automatic include section */
#line 1 "c:\main.pgc"
#include <stdio.h>
#include <stdlib.h>

/* exec sql begin declare section */
/* exec sql end declare section */
#line 5 "c:\main.pgc"


#line 1 "C:/Programme/PostgreSQL/8.1/include/sqlca.h"
#ifndef POSTGRES_SQLCA_H
#define POSTGRES_SQLCA_H

#ifndef DLLIMPORT
#if  defined(WIN32) || defined(__CYGWIN__)
#define DLLIMPORT __declspec (dllimport)
#else
#define DLLIMPORT
#endif   /* __CYGWIN__ */
#endif   /* DLLIMPORT */

#define SQLERRMC_LEN	70

#ifdef __cplusplus
extern		"C"
{
#endif

struct sqlca_t
{
	char		sqlcaid[8];
	long		sqlabc;
	long		sqlcode;
	struct
	{
		int			sqlerrml;
		char		sqlerrmc[SQLERRMC_LEN];
	}			sqlerrm;
	char		sqlerrp[8];
	long		sqlerrd[6];
	/* Element 0: empty						*/
	/* 1: OID of processed tuple if applicable			*/
	/* 2: number of rows processed				*/
	/* after an INSERT, UPDATE or				*/
	/* DELETE statement					*/
	/* 3: empty						*/
	/* 4: empty						*/
	/* 5: empty						*/
	char		sqlwarn[8];
	/* Element 0: set to 'W' if at least one other is 'W'	*/
	/* 1: if 'W' at least one character string		*/
	/* value was truncated when it was			*/
	/* stored into a host variable.				*/

	/*
	 * 2: if 'W' a (hopefully) non-fatal notice occurred
	 */	/* 3: empty */
	/* 4: empty						*/
	/* 5: empty						*/
	/* 6: empty						*/
	/* 7: empty						*/

	char		sqlstate[5];
};

struct sqlca_t *ECPGget_sqlca(void);

#ifndef POSTGRES_ECPG_INTERNAL
#define sqlca (*ECPGget_sqlca())
#endif

#ifdef __cplusplus
}
#endif

#endif

#line 6 "c:\main.pgc"

/* exec sql whenever sqlerror  sqlprint ; */

#line 7 "c:\main.pgc"


int main(int argc, char *argv[])
{
  /* exec sql begin declare section */
  /* exec sql end declare section */
#line 12 "c:\main.pgc"

  
  { ECPGconnect(__LINE__, 0, "olympia" , NULL,NULL , NULL, 0); 
#line 14 "c:\main.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 14 "c:\main.pgc"

  
       printf("Mit DB Olympia verbunden!");
       
  { ECPGdisconnect(__LINE__, "CURRENT");
#line 18 "c:\main.pgc"

if (sqlca.sqlcode < 0) sqlprint();}
#line 18 "c:\main.pgc"

       
  system("PAUSE");	
  return 0;
}

Wäre dankbar wenn mir jemand einen Tipp geben könnte!

Grüße
Esperanto
 
Hi und willkommen im Forum,

ich glaub nicht, dass du im SQL-Forum eine Lösung bekommen wirst. Das Problem ist im C++ Forum doch besser aufgehoben. Dein Problem hat mit SQL bzw. mit DBs eher wenig zu tun. Ich glaube im C++ Forum können dir mehr helfen als hier.
 
Hi niggo,

war nicht sicher an welchem Compiler es liegt, wobei ich schon auf den Visual-Compiler getippt habe da... Kann mir nun jemand verraten wie ich meinen Beitrag verschieben kann :confused:
 
Du gar nicht, das können nur Admins und Mods (wie eigentlich in jedem Forum ;) ). Also entweder bei einem von denen nachfragen und warten oder einfacher:
ein neues Thema im C++ öffnen
 
Zurück