ESQL используется в промышленности? - PullRequest
6 голосов
/ 24 марта 2011

Я беру курс по базе данных, и мне нужно написать приложение для командной строки.Профессор хочет, чтобы мы написали приложение ESQL (embed SQL).

У меня такое чувство, что технология такого рода устарела.

Мы должны использовать прекомпилятор oracle для перевода кода esql вC ++.Приложения такого типа выглядят ужасно.

Приложение php также будет хорошо работать, но они, вероятно, хотят, чтобы приложение командной строки выполняло сортировку быстрее (модульный тест с вводом данных).Что вы, ребята, думаете, используется ли Embed SQL в отрасли, стоит ли просить профессора сделать Java-приложение?Есть ли другая технология более подходящая?

Ответы [ 7 ]

8 голосов
/ 07 апреля 2011

Встроенный SQL был одним из самых популярных способов сделать SQL в C в «старые времена» (C ++ еще не был изобретен).

В наши дни в основном мы будем использовать библиотеку ORM.Больше не рекомендуется использовать встроенный SQL, потому что, как вы понимаете, это зависит от проприетарного препроцессора и затрудняет отладку, управление и обслуживание кода.Он также подключает к одному поставщику базы данных, и ваш код будет чрезвычайно трудно переместить на другой сервер базы данных.Как правило, мы не делаем это в «реальной жизни».

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

Однако я полагаю, что вы упускаете суть, спрашивая о PHP и Java.Не говоря уже о том, что PHP - это язык сценариев, а Java - еще один язык, на котором вы можете (потенциально) написать процессор для встроенного SQL.

Так что ваша точка зрения на встроенный SQL действительно не имеет ничего общего с language выбор.Это связано с компромиссами и балансом между (1) проприетарной встроенной системой с препроцессором, (2) использованием библиотеки ORM или библиотекой доступа к данным (например, ODBC).

Вне темы:

Я впервые начал использовать встроенный SQL, когда учился в колледже (это было около 30 лет назад!).На самом деле получил работу в колледже по программированию и все еще использовал его, но, очевидно, это было на выходе.Никогда не видел, чтобы он использовался с 1990 года или около того.

4 голосов
/ 06 апреля 2011

Мы должны поддерживать старую систему (20 лет и старше).

ESQL широко используется здесь. Большинство проблем возникли при переносе программного обеспечения на новую ОС (это был 15-летний hpux) с кодом ESQL.

Все новое программное обеспечение, которое мы пишем, использует библиотеку C ++. Это дает нам более читаемый код + наша IDE не говорит «неверный синтаксис» все время. так далее.. Библиотека C ++ в общих чертах очень похожа на то, как я подключаюсь к базе данных в .NET или Java.

Использование библиотеки C ++ повышает скорость (при разумном использовании) и значительно меньше ошибок.

ESQL устарел с моей точки зрения. Но поскольку мы ввели время, когда большая часть написанного программного обеспечения предназначена для обновления / обновления или обслуживания существующих систем, очень удобно иметь базовые знания старых методов!

4 голосов
/ 01 апреля 2011

Да, но нет.Я не встречал ни одной строки Embedded SQL за 10 лет работы в этой области.Я бы сказал (и надеюсь), что эта технология существует только в (некоторых) унаследованных системах.

В настоящее время разработка баз данных в отрасли включает:

  • Прямой доступ к базе данных с использованием JDBC,ADO .NET, OLE DB, ODBC или нативные библиотеки ( OCCI в вашем случае).
  • Какой-то ORM (Hibernate, Entity Framework или самодельный решение ).
  • Какой-то уровень доступа к данным на основе каркасов и / или шаблонов (например, Ruby on Rails, Active Record или решение собственного производства ).

ИМХО, домашние решения должны быть искоренены, но они встречаются чаще, чем вы думаете.Часть этого, безусловно, будет иметь отношение к учащимся, которые только экспериментируют с устаревшими и неадаптированными инструментами в школе ...

ORM (и уровни доступа к данным) проблемы могут быть очень сложными, и ясказал бы очень интересно посмотреть.Особенно, если вы студент.Я бы порекомендовал углубиться в P Мартина Фаулера из EAA .

В C ++ я бы посмотрел на SOCI .

2 голосов
/ 01 апреля 2011

Я не видел встроенного SQL в приложении в течение 10 лет.В последний раз я видел это в унаследованном мэйнфрейм-приложении, написанном на языке COBOL.Да, все еще используется в компании по производству электрооборудования.

Небольшое программирование на C ++, которое я делаю в наши дни, не связано с SQL.В наши дни большинство реляционных БД, с которыми я сталкиваюсь, это одно из следующих:

  1. ORM (реляционное отображение объектов - hibernate или JPA)
  2. JDBC
  3. хранимые процедуры (оракул илиmySQL)
1 голос
/ 28 августа 2014

ESQL - основной язык, широко распространяемый для продуктов промежуточного программного обеспечения IBM. Это не объектно-ориентированный язык, а процедурный язык. В некоторых местах он широко используется для сопоставления между XML (псевдоним для XSLT).

1 голос
/ 07 апреля 2011

Хотя это, вероятно, устарело (я также делал ESQL ~ 15-20 лет назад), оно все еще может служить хорошим примером того, как подходить к вещам - даже если вы только потом сможете больше наслаждаться ORM.1001 *

Кроме того, насколько я понимаю, LINQ в .NET отчасти похож на идею встраивания SQL в язык хоста - и LINQ кажется довольно популярным.похоже, это актуальная тема исследований, поэтому пример ESQL как ранней версии не слишком далек от современного мира.

0 голосов
/ 09 апреля 2013

Я использую ESql на дату в базе данных Informix 9.x в устаревшем коде приложения C ++, над которым я работаю как часть моей работы.

Хотя я согласен со всеми, что он старыйТехника, и есть лучшие варианты там, я бы все равно сказал, что это очень аккуратная техника.Хорошей частью является то, что SQL встроен как часть потока кода C / C ++, с точки зрения синтаксиса и логики.Небольшое изменение синтаксиса, которое несет в себе ESql, легко выучить, и поэтому я говорю, что им интересно пользоваться.

Как уже упоминал Хейко, LINQ близок по идее к ESql.

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