Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка добавления строки длинной более 4000 символов / 4 сообщений из 4, страница 1 из 1
08.08.2006, 16:51
    #33906085
Ошибка добавления строки длинной более 4000 символов
Написал форум на jsp. СУБД - MSSQL Server 2000 EE
В базе таблица
Subject
ID int 4
IDUser int 4
IDRazdel int 4
IDSubject int 4
Subject varchar 255
Tt varchar 8000
Dt varchar 50

Как видно поле Tt (для хранения текстовой части) имеет длину 8000 символов.
Но при добавлении в него строки длинной более 4000 символов выскакивает ошибка:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Disallowed implicit conversion from data type ntext to data type varchar, table 'forum_local.dbo.SUBJECT', column 'Tt'. Use the CONVERT function to run this query.
Как от неё избавиться?
...
Рейтинг: 0 / 0
08.08.2006, 18:03
    #33906325
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка добавления строки длинной более 4000 символов
Попробуй что-то вроде этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
Connection con;
...
PreparedStatement pst =
      con.prepareStatement("insert into MY_TABLE (Tt) values (convert(varchar(8000), ?))");
pst.setString( 1 , bigString);
pst.execute();
...
Рейтинг: 0 / 0
09.08.2006, 09:11
    #33907008
Ошибка добавления строки длинной более 4000 символов
Так и делаю.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
	 public   int  AddSubj( int  iduser,
		 int  idrazdel,
		String subj,
		String txt,
		String dt)
		 throws  Exception
	{
	 int  id= this .ID("SUBJECT");
// Формирование запроса
	Query="Insert into SUBJECT values( ?, ?, ?, ?, ?, ?, ?)";
	PrepStmt = Con.prepareStatement(Query);
	PrepStmt.setInt( 1 , id);
	PrepStmt.setInt( 2 , iduser);
	PrepStmt.setInt( 3 , idrazdel);
	PrepStmt.setInt( 4 ,  0 );
	PrepStmt.setString( 5 , subj);
	PrepStmt.setString( 6 , txt);
	PrepStmt.setString( 7 , dt);
	PrepStmt.executeUpdate();
	 return  id;
	};
...
Рейтинг: 0 / 0
09.08.2006, 09:26
    #33907036
Ошибка добавления строки длинной более 4000 символов
Спасибо, проблема решилась - просто строка в юникоде добавляется и символ занимает 2 байта, проблема решена изменением типа данных в SQL Servere
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка добавления строки длинной более 4000 символов / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]