Campo mes Trunca os dados! PQ?

1 resposta
J
Bom e o seguinte eu tenho um jsp assim:
<%
//boolean isMultipart = FileUpload.isMultipartContent(request);
if(FileUpload.isMultipartContent(request)){
	DiskFileUpload fu = new DiskFileUpload();
	fu.setSizeMax(1024*512); // 512 K
	try
	{
	 
		fu.setSizeThreshold(4096);
	 	fu.setRepositoryPath("/tmp");
	 	List fileItems = fu.parseRequest(request);
	 
	 	if(fileItems == null)
     	{
	        out.println("A lista é nula!!");
            
    	 }            
     	//out.print("<br>O numero de Arquivos é: " +  fileItems.size());
	 	Iterator i = fileItems.iterator();
	 	FileItem actual = null;
     	     
     	while (i.hasNext())
     	{
     		actual = (FileItem)i.next();
        	String fileName = actual.getName();
        	//out.println("<br>Arquivo " + fileName);	
 		
 			// determinando o local do ficheiro
        	File arquivo = new File(fileName);
        	//out.println("<br>O nome do Arquivo é " + arquivo.getName());
			//arquivo = new  File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\" + arquivo.getName());
			String pasta = getServletContext().getRealPath("/admin/arquivo_csv");
			arquivo = new File(pasta + File.separator + arquivo.getName());
			System.out.println(arquivo.getName());
			if(!arquivo.exists()){
				arquivo.createNewFile();
				out.println("<br>Arquivo criado com sucesso");
			}
			actual.write(arquivo);
			out.println("<br><font color='blue'><center>Upload Realizado</center></font>");
			
			//insercao no banco!!
			//File arq = new File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\");
			BufferedReader br = new BufferedReader(new FileReader(arquivo));
			PreparedStatement  stmt= con.prepareStatement("INSERT INTO custos(cc_custo, impressoes, valImpress, copias, valCopias, mes) values (?, ?, ?, ?, ?, ?)");
			while(br.ready()){
				String linha = br.readLine();
				String[] dados = linha.split(";");
				for(int j = 0; j < dados.length; j++){
					stmt.setString(j+1, dados[j]);				
				}
				stmt.executeUpdate();
			}
			
		}
	} catch(Exception e) {
		out.println(e.getMessage());
	}
}
%>
ele faz upload num arquivo csv e depois insere os dados no banco meu banco e constituido assim:
create table custos(
cc_custo varchar(10),
mes int(2),
impressoes int(10),
valImpress float(12),
copias int(10),
valCopias float(12)
);
ele antes funcionava tranquilamente foi entaum q resolvi mudar o campo mes(int) para mes(varchar de 4) ele fazia as buascas e inseria na tabela tudo correto so q surgia umas pas assim
"cc_custo|mes"
ao lado dos campos na tabela isso ocasinava erro e eu qria so transformar o mes de int( numeros tipo 06, 07, 08, 09...) para String(jan, fev, mar) e ele dava este erro, bom dai qs voltar a fazer com numeros pois axei um funcão q trasnforma os numeros em texto dai , so q dai começo a dar problema tipo ele da um erro assim
Data truncated for column 'mes' at row 1

diz q todos so campos da fileira um foram truncados para o mes mas pq isso se antes tudo ocorria corretamente???? isso e um problema na tabela ou no arquivo csv??? pq tipo no jsp n deve ser pq n mexi nada nele e antes funcionava!!! a unica coisas q fiz foi qmudei o csv e depois ateh fiz outros n sei se isso pode dar erro, e tbn mudei o campo mes de int(2) para varchar(4) e tipo agora ja coloquei denovo como era e ele da este erro ateh escrevi a tabela denovo mas n adianta!!!pq sera q acontece isso
Bom galera fico no aguardo ai qm puder me ajudar valew!!!!!
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

1 Resposta

M

acho melhor vc dar uma olhada no conteudo da variavel mes antes de executar o insert, acho q está vindo algum tipo de dado errado. Talves ao invez de 02 para março, march… da uma checada

Criado 28 de junho de 2006
Ultima resposta 28 de jun. de 2006
Respostas 1
Participantes 2