0
나는 데이터베이스에 내 양식에서 지문 데이터를 삽입하려고
그러나 나는 다음과 같은 예외가있어,삽입 지문 데이터 내가 잘못된 방식으로 직렬화 메커니즘을 구현 알고 2008
com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
하지만 내가 직접
public void setPerson(){
tfcNIC.setText(tfcnic1.getText()+tfcnic2.getText()+tfcnic3.getText());
Person p = new Person();
p.setName(tfname.getText());
p.setFname(tfFname.getText());
p.setAddr(tfaddr.getText());
p.setCnic(tfcNIC.getText());
p.setfPrint(((MainForm)getOwner()).getTemplate().serialize()); <--- My Stupid Serialization Step,
, 여기
내가 무슨 짓을 코드입니다, 그렇게하는 방법을 모른다 클래스 데이터베이스에public void setfPrint(byte[] fp){
fPrint = fp; <----- Setter method for Finger Print Of Person
}
데이터 삽입
public void setPersonStatement(String nm,String fn,String cn,String add, byte[] fpt) {
String Sql = "INSERT INTO PERSON (NAME, FNAME, CNIC, ADDR, FPT) VALUES (?,?,?,?,?)";
try {
if(con==null){
System.out.println("Connection error");
}
else {
System.out.println("Connection ok");
}
pst2=con.prepareStatement(Sql);
System.out.println(nm);
pst2.setString(1, nm);
pst2.setString(2, fn);
pst2.setString(3, cn);
pst2.setString(4, add);
pst2.setBytes(5, fpt);
pst2.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("SQL Error");
e.printStackTrace();
}
}
데이터베이스에있는 지문에 대한 데이터 유형이 나는 사람은 말해 줄 수 그렇다면 무엇을, 직렬화 개념에 새로운 오전 크기 1024, 의, VARBINARY입니다 ,
내가 디지털 페르소나 URU 4000 B를 사용하고 자바 API에 대한 하나의 터치 SDK는
아미르 Keibi 말했듯이
나는 이것이 직렬화와 관련이 없다고 생각합니다. 데이터베이스에서 되돌아 오는 오류는 분명합니다. 삽입하려는 값 중 하나가 해당 열의 크기보다 큽니다. –
다른 모든 필드는 GUI에서 제약 조건이 있습니다. 사용자가 지정한 크기보다 큰 데이터를 입력 할 수 없으며 유일한 동적 인 것은 바이트 []이며, 크기가 1024 인 VarBinary를 설정 했으니 충분하지 않습니까? –
이것은 System.out.println (fpt)입니다. cmd로 출력 [B @ 98adae2 –