Задача Ant SQL - PullRequest
       7

Задача Ant SQL

0 голосов
/ 11 января 2011

У меня есть этот ant-скрипт, который должен создать таблицу customer.Я вижу сообщение "Обновление базы данных ...", поэтому я знаю, что он вызывается, однако, когда он попадает в задачу 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>

Ответы [ 2 ]

0 голосов
/ 11 января 2011

Я ответил на свой вопрос.Я вызвал цель из своей собственной пользовательской задачи, и исключение было обнаружено, и сборка продолжалась нормально, без каких-либо сообщений об ошибках.У меня сейчас другие проблемы, но я думаю, что смогу заставить их работать сейчас, когда я вижу, какую ошибку я получаю.

Снова мои извинения.

0 голосов
/ 11 января 2011

Обычно вы не выдаете операторы DDL (create table и т. П.) Внутри транзакции. Можете ли вы попробовать удалить вмещающую транзакцию?

Например, Sybase не допускает таких утверждений, вызывающих ошибку:

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

У меня нет экземпляра SQL Server, с которым можно играть, но я ожидаю аналогичного поведения.

...