встроенный sql в C - PullRequest
       8

встроенный sql в C

2 голосов
/ 19 ноября 2008

Я пытался написать встроенные операторы SQL для DB2, которые в конечном итоге компилируются в C.

Я не смог найти учебник или руководство по синтаксису встроенного SQL для C для справки. Один случай, который я хотел бы сделать, это вставить данные в таблицу. Я знаю, что большинству встроенных SQL-операторов нужен инициализатор EXEC SQL, но в целом это мои знания. Я делаю это для задания и буду признателен, если есть больше информации об этом или решении.

Пример оператора запроса к базе данных:

EXEC SQL SELECT SNAME, AGE into :sname, :sage
    FROM ONE.SAILOR
    WHERE sid = :sid;

Мне нравится видеть, какое утверждение позволяет мне ВСТАВИТЬ в базу данных. Я пробовал что-то вроде следующего, но это не работает.

 EXEC SQL INSERT ....

Ответы [ 3 ]

2 голосов
/ 19 ноября 2008

Четыре точки не являются синтаксически действительными: -D

Надежный способ такой же, как и для любого другого оператора INSERT: перечислить столбцы и значения.

EXEC SQL INSERT INTO SomeTable(Col1, Col2, Col3) VALUES(:hv1, :hv2, :hv3);

Здесь:: hv1,: hv2 и: hv3 представляют три переменные хоста типов, соответствующих столбцам в таблице. Обратите внимание, что таблица может содержать столбцы, отличные от этих трех, при условии, что для этих столбцов задано значение по умолчанию или принимается значение NULL (в данном случае это просто значение по умолчанию) Ненадежный способ не перечисляет столбцы:

EXEC SQL INSERT INTO SomeTable VALUES(:hv1, :hv2, :hv3);

Теперь вы зависите от правильности последовательности и должны предоставить значение для каждого столбца - в SomeTable не может быть дополнительных столбцов.

2 голосов
/ 19 ноября 2008

См. Руководство IBM Embedded SQL .

Встроенный SQL во многом одинаков, независимо от того, на каком языке он находится.

1 голос
/ 19 ноября 2008

Я только начал использовать sqllite . Помимо хорошей документации для C ++, SQLlist может быть полезен, потому что вы можете тестировать свой код, не будучи зависимым от DB2, и его действительно легко добавить с вашим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...