2017-02-02 6 views
-1

So habe ich dieses Beispiel C++ Programm, das ich von IBM bekam (Wie verbinden und trennen Sie von einer Datenbank) in Embedded SQL Abschnitt (siehe: http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.samptop.doc/doc/r0011556.html)Embedded SQL in Dev C++

Im mit Dev C++ und wenn ich kompilieren Das gibt mir einen Fehler. Dort heißt es:

[Fehler] 'EXEC' Name hat keinen Typ

Wer die Ursache dafür weiß? Ist das eine fehlende Header-Datei?

EDIT1: Hier ist der direkte Link für den Code: http://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.sample.doc/doc/cpp/s-dbconn-sqC.html

+0

Es gibt zu wenig Details darüber, was wir tun sollten, um einen Fehler zu reproduzieren, z. Es gibt keinen Code (siehe [http://stackoverflow.com/help/mcve](MCVE)]. Basierend auf dem Fehler würde ich davon ausgehen, dass Sie versucht haben, SQL-Anfrage als C++ - Code zu kompilieren. – yeputons

+0

Sorry, wenn es alle verwirrt hat. Der Link, den ich gab, enthält den Code, den ich zu kompilieren versuche (das ist die Hauptseite und du musst sie dort noch durchsuchen). Hier ist der direkte Link: http://www.ibm.com/support/knowledgecenter/de/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.sample.doc/doc/cpp/s-dbconn-sqC.html – HanSoloQue

+0

Gibt es weitere Fehler, die Sie erhalten oder die einzige von Ihnen angegebene Zeile ist das vollständige Kompilierungsprotokoll? – yeputons

Antwort

1

Das Problem ist, dass das Beispiel nicht eine einfache C++ verknüpft ist. Es ist ein Beispiel für IBM's embedded SQL in C++, das eine Vorverarbeitung mit von IBM bereitgestellten Tools erfordert, bevor es in einen Compiler oder eine Standard-C++ - IDE eingegeben wird, die nichts über Embedded SQL (wie Dev C++) weiß. Zitiert den Link (Hervorhebung von mir):

Embedded SQL-Anwendungen beinhaltet zwei Voraussetzung vor der Anwendung Kompilation Schritte und die Verknüpfung.

  1. Vorbereiten der Quelldateien eingebettete SQL-Anweisungen enthalten, die DB2-Precompiler verwenden.

    Die PREP (PRECOMPILE) Kommando wird verwendet, um die DB2-Precompiler aufzurufen, die den Quellcode liest, analysiert und konvertiert die eingebettete SQL-Anweisungen zu DB2 Run-Time Services-API-Aufrufe, und schreibt schließlich die Ausgabe in eine neue geänderte Quelldatei Der Precompiler erstellt Zugriffspläne für die SQL-Anweisungen, die zusammen als ein Paket in der Datenbank gespeichert sind.

  2. Bindung der Anweisungen in der Anwendung an die Zieldatenbank.

    Die Bindung erfolgt standardmäßig während der Vorkompilierung (PREP-Befehl). Wenn die Bindung zurückgestellt werden soll (z. B. später den Befehl BIND ausführen), muss die Option BINDFILE unter PREP angegeben werden, damit eine Bindedatei generiert werden kann.

Sobald Sie vorkompilierte haben und gebunden Embedded SQL-Anwendung, es ist bereit, die Host-sprachspezifische Entwicklungstools werden kompiliert und verknüpft werden.

So müssen Sie vorverarbeiten das Beispiel mit einigem Tool IBM (vermutlich PREP genannt) und erst danach, dass Sie einen gültigen C++ Code erhalten. Ich bin mir nicht sicher, ob es einfach oder möglich ist, dass Dev C++ das automatisch verwendet.

+0

. Danke für die klare Erklärung. Ich werde versuchen zu erforschen, ob Precompiling in DevC++ – HanSoloQue

+0

@HanSoloQue getan werden kann versuchen Sie etwas wie "Pre-Compilation Hook" oder "Pre-Compilation Aktion". – yeputons

+0

'prep' ist der DB2 CLP-Befehl, für den Sie den DB2-Client installieren müssen. Die Installation enthält außerdem Beispielskripts zum Erstellen von Embedded SQL-Programmen. – mustaccio