URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 36186
[ Назад ]

Исходное сообщение
"OpenNews: Использование прямых SQL запросов в Си коде"

Отправлено opennews , 08-Дек-06 13:08 
В статье "Embedded SQL with Pro*C (http://www.oreillynet.com/pub/a/databases/2006/12/07/embedde...)" рассказывается о пре-компиляторе Pro*C, преобразующем исходные тексты с "Pro*C" вставками (по сути обычные SQL вставки) в нормальный Си/Си++ код.


Ниже наглядные примеры единого использования переменных и прямых
SQL запросов:


       int a;
       EXEC SQL SELECT salary INTO :a
                 FROM Employee
                 WHERE SSN=876543210;
       printf("The salary is %d\n", a);

       int x; char *y; int z;
       EXEC SQL INSERT INTO emp(empno, ename, deptno)
           VALUES(:x, :y, :z);

       int emp_number[50];
       char emp_name[50][11];
       EXEC SQL INSERT INTO emp(emp_number, name)
           VALUES (:emp_number, :emp_name);


URL:
Новость: http://www.opennet.me/opennews/art.shtml?num=9147


Содержание

Сообщения в этом обсуждении
"Использование прямых SQL запросов в Си коде"
Отправлено Аноним , 08-Дек-06 13:08 
извращение еще то. Кого учили - не пользоваться макросами, а они...уф епть

"Использование прямых SQL запросов в Си коде"
Отправлено Аноним , 08-Дек-06 13:27 
Ну нафиг, зачем это нужно если можно все сделать наглядней без этого извращения ?

"Использование прямых SQL запросов в Си коде"
Отправлено Vladimir Kozlov , 08-Дек-06 13:53 
Ужас. Я думал что ESQL закопали и надпись на камне написали, а оно еще барахтается...

"Использование прямых SQL запросов в Си коде"
Отправлено Jelis , 08-Дек-06 15:26 
А можно факты - чем такой подход плох?

"Использование прямых SQL запросов в Си коде"
Отправлено Vladimir Kozlov , 08-Дек-06 15:32 
> А можно факты - чем такой подход плох?

Да собственно... можно бифштекс покрошить в борщ, туда же вывалить салат и слить компот, а потом через край тарелки это выхлебать... Цель достигнута - запас калорий в организме пополнен :)



"Использование прямых SQL запросов в Си коде"
Отправлено Jelis , 08-Дек-06 15:44 
Я факты просил, а не ваши упражнения в красноречии.

"Использование прямых SQL запросов в Си коде"
Отправлено Slavik , 08-Дек-06 16:12 
> Я факты просил, а не ваши упражнения в красноречии.

Nedostatok ispolzovanija Embedded SQL: SQL cod vinesen za predeli basi dannix. Embedded SQL bil sozdan v to vrema (i dla togo vremeni) kogda nebilo hranimix procedur.


"Использование прямых SQL запросов в Си коде"
Отправлено Vladimir Kozlov , 08-Дек-06 16:47 
> Nedostatok ispolzovanija Embedded SQL: SQL cod vinesen za predeli basi dannix. Embedded SQL bil sozdan v to vrema (i dla togo vremeni) kogda nebilo hranimix procedur.

+1.
Ибо в нормально спроектированном приложении есть набор объектов-оберток над хранимыми процедурами, где всё препарится и компилится на серваке. А остальной код приложения работает с этими обертками, причем за счет серверной компиляции максимально эффективным образом.
Разбросанные тут и там по коду куски ESQL можно терпеть максимум в приложении у которого 2 таблички на mysql живут, далее это превратится в нечто монстроидальное и трудноуправляемое.
Впрочем, отдельные умельцы по 15000 строк в void main(){} запхнуть умудряются... им не привыкать...


"Использование прямых SQL запросов в Си коде"
Отправлено Woody , 08-Дек-06 17:40 
> Впрочем, отдельные умельцы по 15000 строк в void main(){} запхнуть умудряются... им не привыкать...

Это вы о mplayer? ;)


"Использование прямых SQL запросов в Си коде"
Отправлено Аноним , 10-Дек-06 00:07 
есть же обёртки над sql не на sql а уже на прикладном ЯП.
вот для них же.
это не то же самое что и код sql пополам с Си в разных частях приложения.

"Использование прямых SQL запросов в Си коде"
Отправлено oleg , 08-Дек-06 16:03 
Факты? Я пробовал пополнять калории описанным способом. Отказать.

"Использование прямых SQL запросов в Си коде"
Отправлено ram_scan , 08-Дек-06 18:24 
А чем плохо ? Однажды уже было, никому не мешало. Ежедневную одноразовую горбуху на пару запросов скодить - самое то. А с дуру можно ясный день и член сломать... Каждой задаче - свой инструмент.

"Использование прямых SQL запросов в Си коде"
Отправлено bodun , 08-Дек-06 18:50 
Небольшие утилиты писать - самое то. Будет быстро и понятно. Вместо огорода ADO или ODBC.



"Использование прямых SQL запросов в Си коде"
Отправлено мимоход , 08-Дек-06 19:14 
небольшие утилиты писать - самое то на perl или того проще - на *sh, а такие извраты - ф топку.

"Использование прямых SQL запросов в Си коде"
Отправлено AlexDaos , 09-Дек-06 09:28 
А что, сложно API соответствующей БД юзать? Там же тоже просто запросы будут, просто в сответствующей функции. А то учим Си, потом учим ESQL потом пишем, потом думаем где напароли. Все едино после прогона через препроцессор будет код для конкретной БД по идее.

А ADO или ODBC эт для ситуации когда БД непонятно какую юзать надо... ИМХО.


"Использование прямых SQL запросов в Си коде"
Отправлено Николай Самохвалов , 09-Дек-06 12:45 
Основной плюс - это возможность делать проверки SQL-кода до компиляции.

Ясное дело, что есть минусы. Но вот этот плюс, на мой взгляд, даёт право на жизнь данному подходу. Это подтверждается тем, что "встроенный SQL" описан и в тексте стандартов (в какой-то из его частей).


"Использование прямых SQL запросов в Си коде"
Отправлено Vladimir Kozlov , 11-Дек-06 14:15 
>Основной плюс - это возможность делать проверки SQL-кода до компиляции.
>
>Ясное дело, что есть минусы. Но вот этот плюс, на мой взгляд,
>даёт право на жизнь данному подходу. Это подтверждается тем, что "встроенный
>SQL" описан и в тексте стандартов (в какой-то из его частей).
>


проверки sql-кода сишным компилером... эхехе, а если я элементарно в имени поля буковку попутаю - это как, отдетектится? :)



"Использование прямых SQL запросов в Си коде"
Отправлено oleg , 11-Дек-06 01:49 
этот Pro*C гыдота та ещё. что более-менее простое на нём налабать можно, но не более. в своё время поковырял его и перешёл на OTL, коим остался вполне доволен.