2009-10-02 4 views
1

я пытаюсь вставить значение в таблице, передавая значение в функции так:ошибка: Data-усечение при вставке в таблице

public void insert(long r,String s_n,char sex,String sf_n,String sm_n,int c,char sec,long tel,long amount,String add,int age,String house) 
    { 
     try{ 
      this.ps=this.con.prepareStatement("insert into s_table values(?,?,?,?,?,?,?,?,?,?,?,?);"); 
      this.ps.setLong(1,r); 
      this.ps.setString(2,s_n); 
      this.ps.setObject(3,sex,java.sql.Types.CHAR); 
      this.ps.setString(4,sf_n); 
      this.ps.setString(5,sm_n); 
      this.ps.setInt(6,c); 
      this.ps.setObject(7,sec,java.sql.Types.CHAR); 
      this.ps.setLong(8,tel); 
      this.ps.setLong(9,amount); 
      this.ps.setString(10,add); 
      this.ps.setInt(11, age); 
      this.ps.setString(12,house); 
      this.ps.executeUpdate(); 
      this.ps.close(); 
      con.close(); 
     }catch(SQLException e){System.out.println("The statement is not established while inserting the element bco'z of "+e.getMessage()); 
     e.printStackTrace();} 
    } 

модель JSP страницы:

но он показывает ошибку усечения данных. alt text FYI: соединение установлено

+3

Усечение данных? Похоже, вы поместили значение, размер которого больше размера выделенного столбца. –

+0

Без структуры базы данных и более описательной ошибки, из которой столбец усечен, трудно дать вам и советы. –

+0

И, пожалуйста, добавьте соответствующий тег для вашей СУБД (Postgres, Oracle, Firebird, ...) –

ответ

-1

Как указано в комментариях, это должно быть из-за размера ваших колонок.

Я думаю, вы нашли решение, и вы не задали свой вопрос как «ответил», но я думаю, что это может быть полезно для людей, которые могут иметь эту проблему. Итак, вот мой ответ.

Вот SQL-код, который может быть вашим, VARCHAR (х) позволяют иметь строку х полукокса без каких-либо проблем:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; 
SET time_zone = "+00:00"; 

/*!40101 SET NAMES utf8 */; 
-- 
-- BDD: `test2` 
-- 

-- -------------------------------------------------------- 

-- 
-- Structure of the table `s_table` 
-- 

CREATE TABLE IF NOT EXISTS `s_table` (
    `r` bigint(20) NOT NULL AUTO_INCREMENT, 
    `s_n` varchar(200) NOT NULL, 
    `sex` int NOT NULL, 
    `sf_n` varchar(200) NOT NULL, 
    `sm_n` varchar(200) NOT NULL, 
    `c` int(11) NOT NULL, 
    `sec` int NOT NULL, 
    `tel` bigint(20) NOT NULL, 
    `amount` bigint(20) NOT NULL, 
    `address` varchar(2000) NOT NULL, 
    `age` int(11) NOT NULL, 
    `house` varchar(300) NOT NULL, 
    PRIMARY KEY (`r`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Если есть что-нибудь еще просто спросить.

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