Problemas ao gravar data em banco de dados

2 respostas
P
String urldup = "jdbc:odbc:Clientes";
			String usrdup = "";
			String sendup = "";
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
			Connection condup;
			condup = DriverManager.getConnection(urldup, usrdup, sendup);
			Statement stadup = condup.createStatement();
			ResultSet resdup = stadup.executeQuery("SELECT * FROM duplic");

			String urlnew = "jdbc:postgresql://localhost/dffalu";
			String usrnew = "postgres";
			String sennew = "tornado";
			Class.forName("org.postgresql.Driver").newInstance();
			Connection connew;
			connew = DriverManager.getConnection(urlnew, usrnew, sennew);
			Statement stanew = connew.createStatement();
			stanew.execute("Set DateStyle to ISO, DMY;");

			String cmdatual = "";
			String strDTEMIS = "";
			String strDTVENC = "";
			String strDTPAGT = "";
			SimpleDateFormat chkFORMAT;
			Calendar chkDTCOTA = Calendar.getInstance();
			chkFORMAT = new SimpleDateFormat("dd/MM/yyyy");
			chkFORMAT.setLenient(false); 

 			while (resdup.next()){
				try{
					strDTEMIS = resdup.getString("DUP_DTEMIS");
					strDTVENC = resdup.getString("DUP_DTVENC");
					strDTPAGT = resdup.getString("DUP_DTPAGT");

					try {
						chkDTCOTA.setTime(chkFORMAT.parse(strDTEMIS));
					}
    				catch (Exception msgERRO) {
						strDTEMIS = "    /  /  ";
					}
					try {
						chkDTCOTA.setTime(chkFORMAT.parse(strDTVENC));
					}
    				catch (Exception msgERRO) {
						strDTVENC = "    /  /  ";
					}
					try {
						chkDTCOTA.setTime(chkFORMAT.parse(strDTPAGT));
					}
    				catch (Exception msgERRO) {
						strDTPAGT = "    /  /  ";
					}
				
 					cmdatual = "INSERT INTO dupnew (dup_numero, dup_despar, dup_destot, dup_nrocli, dup_valnom, dup_valipi, dup_dtemis, dup_dtvenc, dup_dtpagt) VALUES (" + 
							resdup.getString("DUP_NUMERO") + ", '"  + 
							resdup.getString("DUP_DESPAR") + "', '" +
							resdup.getString("DUP_DESTOT") + "', "  +
							resdup.getString("DUP_NROCLI") + ", "   + 
							resdup.getString("DUP_VALNOM") + ", "   +
							resdup.getString("DUP_VALIPI") + ", '#" +
							strDTEMIS + "', '#" +
							strDTVENC + "', '#" +
							strDTPAGT + "');"

Estas linhas servem para converter um banco de dados em DBF atravez de uma conexão ODBC para o Postgres, faço a conversão numa boa, porem quando vai gravar as datas, ele da erro quando a data origem esta em branco.

As datas preenchidas são gravadas perfeitamente.

Ja tentei pegar o valor retornado, e testa-lo antes de gravar, mas não sei que valor passar para a instrução SQL para que grave o registro com a data em branco.

2 Respostas

L

você pode gravar o null ?

se puder, faça isso!

depois só tome cuidado pra resgatar… lembre de verificar se é null ou não, se não vai lançar Exeption…

abrass

P

Então… por defaul ele vem com null, e da erro… tentei tb forçar " / / ", e da erro tb… ai pensei em uma coisa bem arcaica, do tipo… alterar a linha do comando insert para ficar variavel e incluir apenas os campos que possuem valores validos diferentes de vazios.
mas acredito que haja alguma outra solução.

Criado 14 de agosto de 2007
Ultima resposta 14 de ago. de 2007
Respostas 2
Participantes 2