2012-06-05 2 views
0

Я делаю программу на Java с базой данных MS Access. адаптированный отрезала моей программыJDBC Java ALTER TABLE Ошибка синтаксиса

Statement s; 
String[] tabinfo = {"Albara", "TBala"}; 
s.execute("ALTER TABLE " + tabinfo[0] + " ALTER COLUMN " + 
    tabinfo[1] + " SET DEFAULT 0 "); 

Что я получаю это SqlException: ALTER TABLE syntax error. Что я делаю неправильно? У меня есть полные права на файл. Имена таблиц и столбцов правильны, поскольку имена извлекаются из метаданных базы данных, и я не изменяю системные таблицы.

Это программа, которая может изменить мою собственную базу данных, которая используется программой, которую я сделал несколько лет назад, поэтому изменение db не может быть и речи. Также не может быть и речи о том, что использование Java, мой клиентский компьютер не будет устанавливать .NET Framework 3.5, и я не собираюсь заниматься информатикой.

+2

Сначала убедитесь, что это связано с Java/JDBC или Access. Получите полную строку для инструкции alter table и запустите ее непосредственно в доступе. затем отчитайтесь здесь. – Axel

+0

Эта программа была впервые написана на Visual Basic 2008. Поскольку мой клиент не смог установить .NET, программа была переписана на Java. Тогда я мог бы изменить таблицы, но не сейчас. Я использую ту же немодифицированную резервную версию db, которую я использовал для тестирования приложения vb.net. – Awel

+0

Итак, если вы поместите точку останова на строку, начинающуюся с 's.execute', и скопируйте содержимое строк и выполните ее непосредственно в Acces, что вы получите? – Axel

ответ

1

Этот запрос не соответствует ALTER TABLE синтаксис MS Access, указанный на MSDN ALTER TABLE Statement (Microsoft Access SQL)

Другое sources, кажется, указывают, что вам необходимо включить тип данных при установке по умолчанию, например

ALTER TABLE <tableName> ALTER COLUMN <columnName> <columnType> DEFAULT <defaultValue> 

(также обратите внимание, что оно не включает SET)

Этот вопрос, как представляется, указывает на необходимость включения синтаксиса SQL Server compa чтобы иметь возможность использовать это: SQL to add column with default value - Access 2003

Смежные вопросы