2014-01-09 3 views
0

У меня есть приложение grails, которое предназначено для вставки арабских символов из интерфейса в базу данных sql-сервера. Сначала я сделал это с полем типа varchar, но он появился ???????. Потом я обнаружил, что тип поля должен быть nvarchar но, приложение просто не может вставить любую строку, давая следующее сообщение об ошибке,Вставка арабских символов в базу данных sql-сервера из grails

java.sql.SQLException: Cannot insert the value NULL into column 'id', table 'smsCampaigner.dbo.message'; column does not allow nulls. INSERT fails. 

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

+0

Вы явно указали тип (varchar, nvarchar), который вы хотите для этой переменной в классе домена? –

ответ

0

здесь вы идете ..

при создании класса домена типа String, используйте для этого столбца и это все. вы можете вставить любой символ, который он примет.

, например TestDomain.groovy

class TestDomain { 
    String column1 
} 
0

В MySQL вы можете настроить параметры сортировки/таблицы/столбца базы данных, чтобы использовать utf8_unicode_ci и если я не ошибаюсь, что справедливо, чтобы сохранить арабские символы. Не уверен, как это сделать с SQL Server, но это должно быть нечто похожее.

0

Изменить параметры сортировки базы данных и таблиц и столбцов Arabic_CI_AS
В Sql студии управления сервера (SSMS), Execute:

ALTER DATABASE DB06 COLLATE Arabic_CI_AS 

где DB06 это имя базы данных.
правой кнопкой мыши на таблице, выберите проект, затем выберите нужную колонку, в его свойствах, выбрать параметры сортировки для Arabic_CI_AS
, кстати, ошибка:

Не удается вставить значение NULL в столбец

не относится к арабскому, это связано с тем, что вы пытаетесь вставить NULL в столбец, который не допускает NULL.

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