powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка добавления строки длинной более 4000 символов
4 сообщений из 4, страница 1 из 1
Ошибка добавления строки длинной более 4000 символов
    #33906085
Написал форум на 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
Ошибка добавления строки длинной более 4000 символов
    #33906325
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй что-то вроде этого:
Код: 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
Ошибка добавления строки длинной более 4000 символов
    #33907008
Так и делаю.
Код: 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
Ошибка добавления строки длинной более 4000 символов
    #33907036
Спасибо, проблема решилась - просто строка в юникоде добавляется и символ занимает 2 байта, проблема решена изменением типа данных в SQL Servere
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка добавления строки длинной более 4000 символов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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