2017-02-02 26 views
-1

Так что я эту программу ++ я получил от IBM образца C (Подключение и отключение от базы данных) в Embedded разделе SQL (см http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.samptop.doc/doc/r0011556.html)Embedded SQL в Dev C++

Im использованием Dev C++ и всякий раз, когда я компилирую это дает мне ошибку. Он говорит:

[Error] 'EXEC' не называет тип

Любой знает причину этого? это отсутствующий заголовочный файл?

EDIT1: Вот прямая ссылка для кода: 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

Слишком мало деталей относительно того, что мы должны делать, чтобы воспроизвести ошибку, например. кода нет (см. [http://stackoverflow.com/help/mcve](MCVE)). Исходя из этой ошибки, я бы предположил, что вы попытались скомпилировать SQL-запрос в виде кода на C++. – yeputons

+0

Извините, если это смущает всех. Ссылка, которую я дал, содержит код, который я пытаюсь скомпилировать (это главная страница, и вам все равно нужно ее просмотреть). Здесь находится прямая ссылка: http://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.sample.doc/doc/cpp/s-dbconn-sqC.html – HanSoloQue

+0

Есть ли какие-либо другие ошибки, которые вы получаете, или единственная строка, которую вы предоставили, это полный журнал компиляции? – yeputons

ответ

1

Проблема заключается в том, что пример вы связаны не простой C++. Это пример для IBM's embedded SQL в C++, который требует некоторой предварительной обработки с помощью инструментов, предоставляемых IBM, перед подачей их в компилятор или стандартную среду C++, которая не знает о встроенном SQL (например, Dev C++). Цитирование ссылку (курсив мой):

Строительство встроенных приложений SQL включает в себя два Предпосылкой действия до применения компиляции и компоновки.

  1. Подготовка исходных файлов, содержащих встроенные операторы SQL, с использованием прекомпилятора DB2.

    команда

    приготовительной (PRECOMPILE) используется для вызова препроцессора DB2, который считывает исходный код, анализирует и преобразует встроенных оператор SQL в DB2 во время выполнения службы API вызовов и наконец, записывает выход на новый измененный исходный файл. Предкомпилятор создает планы доступа для операторов SQL, которые являются , хранящиеся вместе как пакет в базе данных.

  2. Связывание операторов в приложении с целевой базой данных.

    Связывание выполняется по умолчанию во время предварительной компиляции (команда PREP). Если привязка должна быть отложена (например, после запуска команды BIND ), тогда параметр BINDFILE должен быть указан в PREP времени для создания файла привязки.

После того, как вы скомпилированы и связаны ваши встроенных приложений SQL, он готов быть собран и связан с использованием конкретного языка инструментов развития хозяина.

Таким образом, вы должны предварительно обработать пример с инструментом некоторых IBM (предположительно называется PREP) и только после этого вы получите действительный C++ код. Я не уверен, что легко или возможно сделать Dev C++ автоматически.

+0

Я вижу. Спасибо за четкое объяснение. Я попытаюсь исследовать, может ли прекомпиляция быть выполнена в DevC++ – HanSoloQue

+0

@HanSoloQue попробуйте найти что-то вроде «компиляции» или «предкомпиляции». – yeputons

+0

'prep' - это команда DB2 CLP, для этого вам нужен клиент DB2. Установка также содержит примеры скриптов для создания встроенных программ SQL. – mustaccio

 Смежные вопросы

  • Нет связанных вопросов^_^