6

私はデータベース コースを受講しており、コマンド ライン アプリケーションを作成する必要があります。教授は、私たちに ESQL (embed SQL) アプリケーションを作成するよう求めています。

こういう技術は衰退している気がします。

c++ で esql コードを変換するには、Oracle プリコンパイラを使用する必要があります。この種のアプリケーションは、維持するのが大変に見えます。

php アプリケーションも問題なく動作しますが、おそらくコマンド ライン アプリケーションを使用してより迅速に採点を行う必要があります (入力フィードを使用した単体テスト)。Embed SQL は業界で使用されていますか? 教授に Java アプリケーションの作成を依頼する価値はありますか? より適切な別の技術はありますか?

4

7 に答える 7

8

埋め込み SQL は、"昔" (C++ はまだ発明されていませんでした) に C で SQL を実行する最も一般的な方法の 1 つです。

最近ではほとんどの場合、ORM ライブラリを使用します。よく言えば、独自のプリプロセッサに依存し、コードのデバッグ、管理、および保守が困難になるため、組み込み SQL を実行することはお勧めしません。また、1 つのデータベース ベンダーに引っ掛かり、コードを別のデータベース バックエンドに移動するのが非常に難しくなります通常、「実生活」では行いません。

しかし、これは単なるクラスなので、教授はおそらく SQL とデータベースの概念を教えることに興味を持っているでしょう。埋め込み SQL は単なるツールです。C++ に埋め込まれた SQL ではなく、SQL とデータベースを学ぶことになっています。

しかし、PHP と Java について質問するあなたは、要点を見落としていると思います。言うまでもなく、PHP はスクリプト言語であり、Java は埋め込み SQL 用のプロセッサを (潜在的に) 作成できる別の言語です。

したがって、組み込み SQL に関するあなたの主張は、言語の選択にはまったく関係ありません。これは、(1) プリプロセッサを備えた独自の組み込みシステム、(2) ORM ライブラリまたはデータアクセス ライブラリ (ODBC など) の使用の間のトレードオフとバランスに関係しています。

オフトピック:

私が初めて組み込み SQL を使い始めたのは大学生のときです (それは約 30 年前のことです!)。実際、大学を出てプログラミングの仕事に就き、今でもそれを使っていますが、明らかにそれは消えつつありました。1990年頃から使用されているのを見たことがありません。

于 2011-04-07T05:48:02.940 に答える
4

はい、いいえ。私はこの分野で 10 年間、組み込み SQL の行に一度も会ったことがありません。私は、このテクノロジーが (一部の) レガシー システムにのみ存在することを望んでいます。

現在、業界におけるデータベース関連の開発には、次のものが含まれます。

  • JDBC、ADO .NET、OLE DB、ODBC、またはネイティブ ライブラリ (この場合はOCCI ) を使用したデータベースへの直接アクセス。
  • ある種のORM (Hibernate、Entity Framework、または自家製のソリューション)。
  • フレームワークやパターンに基づくある種のデータ アクセス レイヤー (Ruby on Rails、Active Record、または自家製のソリューションを考えてみてください)。

私見、自家製のソリューションは根絶する必要がありますが、それらはあなたが思っているよりも一般的です. これの一部は確かに、学生が学校で時代遅れで適応していないツールだけを試したことに関係しているでしょう...

ORM (およびデータ アクセス層) 関連の問題は非常に複雑になる可能性があり、一見すると非常に興味深いと思います。学生なら特に。Martin Fowler の P of EAA を詳しく調べることをお勧めします。

C++ では、SOCIを調べます。

于 2011-04-01T07:28:39.797 に答える
4

ここでは古いシステム (20 年以上) を維持する必要があります。

ここでは ESQL が大量に使用されています。ソフトウェアを新しい OS (15 年前の hpux) に移行する際に発生した問題のほとんどは、ESQL コードが原因でした。

私たちが書いている新しいソフトウェアはすべて C++ ライブラリを利用しています。これにより、より読みやすいコードが得られます + IDE は常に「無効な構文」とは言いません。など.. C++ ライブラリは、一般的に、.NET または Java でデータベースに接続する方法と非常に同等です。

C++ ライブラリを使用すると、速度が向上し (賢明に使用した場合)、エラーが大幅に減少します。

私の観点では、ESQL は非推奨です。しかし、書かれたソフトウェアの多くが既存のシステムを更新/アップグレードまたは維持する時代に入ったので、古い技術の基本的な知識を持っていることは非常に便利です!

于 2011-04-06T10:52:19.143 に答える
2

アプリケーションに埋め込まれた SQL を 10 年間見たことがありません。私が最後に見たのは、COBOL で書かれた従来のメインフレーム アプリでした。はい、現在も電力会社で使用されています。

私が最近行っているちょっとした C++ プログラミングには、SQL は関係ありません。最近私が遭遇するほとんどのリレーショナル DB プログラミングは、次のいずれかです。

  1. ORM (オブジェクト リレーショナル マッピング - 休止状態または JPA)
  2. JDBC
  3. ストアド プロシージャ (Oracle または MySQL)
于 2011-04-01T02:28:28.870 に答える
1

ESQL は、IBM ミドルウェア製品向けに広く普及している主要な言語です。オブジェクト指向言語ではなく、手続き型言語です。XML (XSLT のエイリアス) 間のマッピングを行うために、いくつかの場所で広く使用されています。

于 2014-08-28T14:44:38.747 に答える
1

これはおそらく時代遅れですが (私も 15 ~ 20 年前に ESQL を実行しました)、後で ORM をより楽しむためだけのものであっても、物事にアプローチする方法の良い例として役立つ可能性があります。

また、私の理解では、.NET の LINQ は、ホスト言語に SQL を埋め込むという考え方と多少似ています。LINQ は非常に人気があるようです。

これをより広範な CS に抽出すると、組み込み DSL は現在の研究テーマのようです。そのため、初期バージョンとしての ESQL の例は、今日の世界からそれほど遠く離れているわけではありません。

于 2011-04-07T11:27:04.223 に答える
0

I am using ESql as of date on a Informix 9.x database in the legacy C++ application code that I work on as a part of my job.

While I agree to everyone that it is an old technique, and there are better options out there, I would still say it is a very neat technique. The good part is the SQL is embedded as a part of the C/C++ code flow, syntax wise and logic wise. The little syntax change that ESql carries is easy to learn, and hence I say its fun to use it.

Like Heiko mentioned, LINQ is close in the idea to ESql.

于 2013-04-08T21:13:54.673 に答える