Выполнение нескольких операторов в одном цикле с Informix - PullRequest
1 голос
/ 22 марта 2011

Можно ли запустить несколько операторов DML в одном цикле, используя Informix и .Net?

Пример (конечно, это не работает):

var cmd = someIfxConnection.CreateCommand();
cmd.CommandText = @"
    insert into Foo(Bar, Baz) values (1, 2);
    insert into Foo(Bar, Baz) values (3, 4);";
cmd.ExecuteNonQuery();

1 Ответ

0 голосов
/ 26 марта 2011

Насколько я знаю, Informix позволяет вам выполнять несколько операторов INSERT / UPDATE, как в вашем примере.То, что вы НЕ МОЖЕТЕ сделать, это выполнить несколько операторов, которые содержат SELECT.

Например, в SQL Server обычно можно увидеть код следующим образом:

INSERT INTO Foo(Bar, Baz) VALUES (1, 2); SELECT @@IDENTITY AS Id

Это может быть выполнено в одномкоманда и будет возвращать значение автоинкрементного первичного ключа из вновь вставленной записи.

Однако это не работает в Informix.Вы должны выполнить две разные команды SQL.Один для вставки записи и один для извлечения идентификатора из таблицы systables:

SELECT DBINFO('sqlca.sqlerrd1') FROM systables WHERE tabid = 1
...