# 第三章: 互換性

バージョン 8.62 は前の Empress バージョンと互換性はありません。

バージョン 8.62 にアップグレードする場合には、すべてのアプリケーションを再コンパイルして、再リンクする必要があります。 Empress ルーチンを使用する ストアドプロシジャーはすべて再コンパイルして、再リンクする必要があります。

V6.2 およびより新しいデータベースにアップグレードするために、Empress ユーザは Empress ユーティリィティ `empcnvt` を使用することができます。

> アップグレードは、いくつかのファイルとディレクトリーの更新とデータ辞書に新しいシステムテーブルを加えことを含むデータ辞書のコンバージョンです。一度、データベースをアップグレードすることにより、 バージョン 8.62 が提供するすべての新しい機能がサポートされます。

V8.20 と V8.60 のデータベースをアップグレードするために、Empress ユーザは　Empress　ユーティリィティ `empupgrd` を使用することができます。。

一旦データベースがアップグレードされれば、バージョン 8.62 アプリケーションだけがデータベースにアクセスすることができます。

ユーティリィティ`empcnvt` と `empupgrd` について、詳しくVolume A2: Manual Pagesを参照して下さい。

Empress は、Empress mr および mx ルーチンの mrprev と mxprev 関数について、古いバージョンとの互換性問題を解決する ために、変数MSSELEXTFETCHを導入しました。mrprevとmxprevが使用されないアプリケーションでは、性能を増強するために、 MSSELEXTFETCH(つまり　MSSELEXTFETCH=　)に何にもセットされません。デフォルトでは、MSSELEXTFETCH は何にもセットされま せん。他の Empress のインターフェース(例えばODBC、JDBC)はこの変数のセッティングによって影響されません。

## 3.1. シンタクスの互換性

次のシンタックス変更は、古い Empress バージョンで書かれたアプリケーションでの互換性問題を引き起こす可能性はあります。

1) 古い Empress 外部結合シンタクスは廃棄されました。ユーザーは新しい Empress ANSI シンタクスを使用しなければなりません。

例えば：

        select * from t1, outer t2 where t1.id = t2.id

はサポートされません。新しいの ANSI シンタクスは

        select * from t1 right join t2 on t1.id = t2.id

2) Empress バージョン 8.62 の中で、別名がテーブルに割り当てられる場合、SQLステートメントでのこのテーブルへの使用はすべて別名を使用しなければなりません。

例えば：

        select t1.id from t1 t where t.id > 5

はサポートされません。正確なシンタックスは次のとおりです：

        select t.id from t1 t where t.id > 5

3) Empress バージョン 8.62 では、ステートメントが GROUP BY 節なしでは HAVING 節および ORDER BY 節を持つことができません。

例えば：

        select sum(a) from t having sum(t.a) = 10 order by c

はサポートされません。正確なシンタックスは次のとおりです：

        select sum(a), c from t group by c having sum(t.a) = 10 order by c

4) Empress バージョン 8.62 では、WHERE節は、ON節のない、INNER JOIN あるいは CROSS JOIN 節の後に使用することができません。

例えば：

        select * from t1 INNER JOIN t2 where t1.id = t2.id

はサポートされません。正確なシンタックスは次のとおりです：

        select * from t1 INNER JOIN t2 on t1.id = t2.id

5) Empress バージョン 8.62 では、集計関数が、WHERE節に現われることを許されません。

例えば：

        select * from t where avg(id) > 10

はサポートされません。

6) Empress バージョン 8.62 では、新しい予約語が導入されました。 詳しく、バージョンノートの予約語を参照して下さい。