Database ESQL在工业中使用吗?

Database ESQL在工业中使用吗?,database,oracle,embedded-sql,Database,Oracle,Embedded Sql,我正在学习数据库课程,我必须编写一个命令行应用程序。教授希望我们编写一个ESQL(嵌入式SQL)应用程序 我感觉这种技术被贬低了 我们必须使用Oracle预编译器来翻译C++中的ESQL代码。这种应用程序维护起来很糟糕 php应用程序也可以很好地工作,但他们可能希望命令行应用程序能够更快地进行分级(使用输入提要进行单元测试)。你们认为,在行业中使用的是嵌入式SQL,请教授做一个java应用程序值得吗?还有其他更合适的技术吗?我已经有10年没有在应用程序中看到嵌入式SQL了。我最后一次看到它是在一

我正在学习数据库课程,我必须编写一个命令行应用程序。教授希望我们编写一个ESQL(嵌入式SQL)应用程序

我感觉这种技术被贬低了

<>我们必须使用Oracle预编译器来翻译C++中的ESQL代码。这种应用程序维护起来很糟糕


php应用程序也可以很好地工作,但他们可能希望命令行应用程序能够更快地进行分级(使用输入提要进行单元测试)。你们认为,在行业中使用的是嵌入式SQL,请教授做一个java应用程序值得吗?还有其他更合适的技术吗?

我已经有10年没有在应用程序中看到嵌入式SQL了。我最后一次看到它是在一个用COBOL编写的遗留大型机应用程序中。是的,目前仍在电力公司使用

这几天我做的C++程序不涉及SQL。现在,我遇到的大多数关系数据库编程都是这样的:

  • ORM(对象关系映射-hibernate或JPA)
  • JDBC
  • 存储过程(oracle或mySQL)

  • 是的,但不是。在我从事该领域的10年中,我没有遇到过一行嵌入式SQL。我想说(并希望)这种技术只存在于(某些)遗留系统中

    目前,该行业与数据库相关的发展将涉及:

    • 使用JDBC、ADO.NET、OLEDB、ODBC或本机库(在您的案例中)直接访问数据库
    • 某种(Hibernate、实体框架或自制的解决方案)
    • 基于框架和/或模式的某种数据访问层(想想RubyonRails,或者自制的解决方案)
    嗯,自制的解决方案应该被根除,但它们比你想象的更普遍。这其中的一部分肯定与学生在学校里只尝试过过时和不适应的工具有关

    与ORM(和数据访问层)相关的内容可能非常复杂,我想说的是非常有趣的一点。尤其是如果你是学生的话。我建议深入研究


    < C++中,我将查看.< /P> < P>我们必须在这里保持一个旧的系统(20岁及以上)。 这里大量使用ESQL。我们在将软件迁移到一个新的操作系统(它是一个有15年历史的hpux)时遇到的大多数问题都是使用ESQL代码的

    我们正在编写的新软件都是利用C++库的。这为我们提供了更具可读性的代码+我们的IDE不总是说“无效语法”。等 一般来说,C++库与我在.NET或java中连接数据库的方式非常相同。

    使用C++库,速度有提高(如果使用得当),错误少很多。


    在我看来,ESQL是不受欢迎的。但是,由于我们已经进入了一个许多书面软件都要更新/升级或维护现有系统的时代,所以掌握旧技术的基本知识非常方便

    在“旧时代”(C++还没有发明)中,嵌入式SQL是用C编写SQL的最流行的方法之一

    现在我们主要使用ORM库。不建议再使用嵌入式SQL,因为正如您所说的那样,它依赖于专有的预处理器,使代码难以调试、管理和维护。它还将您连接到一个数据库供应商,您的代码将很难移动到另一个数据库后端。一般来说,我们不会在“现实生活”中这样做

    但由于这只是一门课,您的教授可能对教您SQL和数据库概念感兴趣。嵌入式SQL只是一种工具。您应该学习SQL和数据库,而不是在C++中嵌入SQL。 但是,我相信您询问PHP和Java的问题没有抓住要点。更不用说PHP是一种脚本语言,Java是另一种可以(潜在地)为嵌入式SQL编写处理器的语言

    因此,您关于嵌入式SQL的观点实际上与语言选择无关。它涉及(1)带有预处理器的专有嵌入式系统,(2)使用ORM库或数据访问库(如ODBC)之间的权衡和平衡

    离题:


    我在大学时(大约30年前)第一次开始使用嵌入式SQL。实际上,大学毕业后就有了编程工作,而且还在使用它,但很明显,它正在被淘汰。自1990年左右以来从未使用过它。

    虽然这可能已经过时了(我在15-20年前也使用过ESQL),但它仍然可以作为一个很好的例子,说明如何处理问题-即使只是为了让你以后更享受ORM

    根据我的理解,.NET中的LINQ与在宿主语言中嵌入SQL的想法有些相似,LINQ似乎非常流行


    从这一点到更广泛的CS,嵌入式DSL似乎是当前的研究课题,所以作为早期版本的ESQL的例子我并不是太远,从今天的世界。

    < P>我在ESql的C++应用程序代码中的Informix 9 x数据库中使用了我作为工作的一部分。 虽然我同意大家的看法,这是一种古老的技术,而且还有更好的选择,但我仍然认为这是一种非常巧妙的技术。好的方面是SQL作为C/C++代码流的一部分被嵌入,无论是语法方面还是逻辑方面。ESql带来的语法变化很容易学习,因此我认为使用它很有趣


    正如Heiko所提到的,LINQ的想法与ESql非常接近。

    ESql是IBM中间件产品中大量传播的主要语言。它不是一种面向对象的语言,而是一种过程语言。它在某些地方广泛用于在XML(XSLT的别名)之间进行映射。

    +1用于Martin Fowler。无论如何,我将不得不编写ESQL应用程序,教授就是很固执。我开始使用cakephp,它类似于Rails。+1表示“这肯定与学生只有经验有关