2011-01-11 72 views
0

我有這個應該創建表客戶的螞蟻腳本。我看到消息「正在更新數據庫...」,所以我知道它正在被調用,但是當它碰到sql任務時,什麼都沒有輸出,所以我很難理解哪裏出了問題。 「升級完成」。消息從不顯示,所以我認爲某處存在致命錯誤。ant sql任務問題

我將sqljdbc4.jar驅動程序與%ANT_HOME%/ lib中的其他庫一起讀取時沒有問題。如果我知道哪裏出了問題,我至少可以尋找解決方案,但現在我面臨任何有類似問題的人的擺佈。當然,這是一個顯而易見的問題,我無法發現。任何投入將不勝感激。

任務的代碼如下:

<!-- ================================= 
      target: execute-script   
     ================================= -->  
<target name="execute-script"> 
     <echo message="Updating database..." /> 
     <sql print="true" failOnConnectionError="true" 
       driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
       url="jdbc:sqlserver://localhost:1433;DatabaseName=database;selectmethod=cursor" 
       userid="ctsql" 
       password="ctsqlone"> 
      <transaction> 
       CREATE TABLE customer 
       (First_Name char(50), 
       Last_Name char(50), 
       Address char(50), 
       City char(50), 
       Country char(25), 
       Birth_Date datetime);    
      </transaction> 
     </sql> 
     <echo message="Upgrade complete." /> 
</target> 
+0

你在說什麼答案? – Neil 2011-01-11 12:07:54

回答

0

你通常不會發出事務中的DDL語句(create table等)。你可以嘗試刪除封閉交易嗎?

的Sybase,例如,不允許這樣的言論提高了錯誤:

The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'xxxxx' database. 

我沒有一個SQL Server實例一起玩,但會想到類似的行爲。

0

我已經回答了我自己的問題。我從我自己的自定義任務中調用目標,並且捕獲異常,並且正常繼續生成,沒有顯示任何錯誤消息。此刻我還有其他問題,但我認爲現在我可以運行它,看看我得到了什麼錯誤。

再次我的道歉。