2011-03-22 64 views
1

是否可以使用Informix和.Net在單個往返中運行多個DML語句?使用Informix在單個往返中執行多條語句

例(當然這不工作):

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

我不明白爲什麼不能。你試過了嗎 ? – Xavinou 2011-03-23 10:18:03

+0

@Xavinou:我是有史以來最大的白癡。它確實有效:-)也許我嘗試了一些類似但無效的東西,並認爲它不被允許。 – 2011-03-23 12:16:34

回答

0

據我所知,Informix的,您可以執行多個INSERT/UPDATE語句,你在你的例子都有。你不能做的是執行包含SELECT的多個語句。

例如,在SQL服務器是很常見的看到代碼如下:

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

這可以在單個指令來執行,並且將來自新插入的記錄返回自動遞增主鍵值。

但這在Informix中不起作用。你必須執行兩個不同的SQL命令。一個插入記錄和一個從systables表中檢索Id:

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

你說得對,老闆。我想知道爲什麼我以前的測試失敗。 – 2011-03-26 00:24:22