FYI: Драйвер Informix ODBC и драйвер .NET официально не поддерживают SE; он все еще может работать. Мои знания о SE также ограничены; информация, которую я перечисляю ниже, может иметь большее значение для IDS, чем SE.
Драйвер, который вы пытаетесь, является Поставщик данных .NET Framework для ODBC; он не работает с типом данных Informix. Informix native .NET Provider поддерживает серию в 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.
Драйвер ODBC Informix обеспечивает способ доступа к вставленному серийному номеру; ESQL/C тоже (в структуре sqlca). Можете ли вы получить от C#? Какую версию Informix SE вы используете? На какой платформе вы его используете? –
Я попробовал это с веб-сайта IBM, но, судя по всему, моя версия SE не поддерживает sqcla. http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls1023.htm – Belmiris
На самом деле, я поговорил с нашим парнем, и он поддерживается только в unix 4gl/4ge. Я пытаюсь использовать csharp в windows. – Belmiris