参考までに: Informix ODBC ドライバーと .NET ドライバーは正式に SE をサポートしていません。それでも機能する場合があります。SE に関する私の知識も限られています。以下にリストする情報は、SE よりも IDS に関連している可能性があります。
試しているドライバーは.NET Framework Data Provider for ODBCです。Informix シリアル データ型ではうまく機能しません。Informix ネイティブ .NET プロバイダはIDS でシリアルをサポートしていますが、このドライバは SE に対してテストされていません。リスクを冒しても構わないと思っている場合は、これで成功する可能性が高くなる可能性があります.
サーバーでシリアル値を一意にするために複雑なアルゴリズムを使用する必要はないと思います。次の例は、それをよりよく説明します。
CREATE TABLE tab ( c1 SERIAL );
INSERT INTO tab VALUES ( 0 );
INSERT INTO tab VALUES ( 4 );
INSERT INTO tab VALUES ( 0 );
INSERT INTO tab VALUES ( 3 );
INSERT INTO tab VALUES ( 3 );
INSERT INTO tab VALUES ( 0 );
SELECT * FROM tab;
1
4
5
3
3
6
DROP TABLE tab;
CREATE TABLE tab ( c1 INT, c2 SERIAL PRIMARY KEY );
INSERT INTO tab VALUES ( 11, 0 );
INSERT INTO tab VALUES ( 12, 0 );
INSERT INTO tab VALUES ( 13, 0 );
INSERT INTO tab VALUES ( 14, 0 );
INSERT INTO tab VALUES ( 15, 0 );
SELECT * FROM TAB;
c1 c2
11 1
12 2
13 3
14 4
15 5
DataTable に追加されたエントリなど、クライアント側で生成されたシリアル型の値を取得しようとしている場合は、DataColumnの次のプロパティが役立つ場合があります:
AutoIncrement、
AutoIncrementStep、
AutoIncrementSeed。