バージョン 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 では、新しい予約語が導入されました。 詳しく、バージョンノートの予約語を参照して下さい。