si si ho risolto con una semplice classettina che ho fatto io che prepara i dati per i database... la posto che non si sa mai possa servire a qualcuno...
la cosa bella è che va bene per tutti i database !!!
codice:
import java.lang.*;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class DbFunction {
private int k_TipoDb_Access = 1;
private int k_TipoDb_SqlServer = 2;
private int k_TipoDb_Oracle = 3;
private int k_TipoDb_MySql = 4;
private int k_TipoDb_Interbase = 5;
private int k_TipoDb_Db2 = 6;
private int intTipoDb;
public DbFunction() {
intTipoDb = k_TipoDb_MySql;
}
public int getTipoDb() {
return intTipoDb;
}
public void setTipoDb(int tipo) {
intTipoDb = tipo;
}
public String getBooleano(boolean booleano) {
switch (intTipoDb) {
case 6 : // k_tipoDb2
if (booleano) {
return "'1'";
} else {
return "'0'";
}
case 2 : //k_TipoDb_SqlServer
if (booleano) {
return "1";
} else {
return "0";
}
case 4 : //k_TipoDb_MySql
if (booleano) {
return "1";
} else {
return "0";
}
case 5 : //k_TipoDb_Interbase
if (booleano) {
return "1";
} else {
return "0";
}
default :
if (booleano) {
return "TRUE";
} else {
return "FALSE";
}
}
}
public String getNumero(String numero) {
try {
if (numero.trim() != "") {
//float test = Float.parseFloat(numero);
String tmp = removeChar(numero, '.');
numero = tmp.replace(',', '.');
return numero;
} else {
return "NULL";
}
} catch (Exception e) {
return "NULL";
}
}
public String getNumero(int numero) {
try {
Integer i = new Integer(numero);
return getNumero(i.toString().replace('.', ','));
} catch (Exception e) {
return "NULL";
}
}
public String getNumero(float numero) {
try {
Float i = new Float(numero);
return getNumero(i.toString().replace('.', ','));
} catch (Exception e) {
return "NULL";
}
}
public String getNumero(double numero) {
try {
Double i = new Double(numero);
return getNumero(i.toString().replace('.', ','));
} catch (Exception e) {
return "NULL";
}
}
public String getStringa(String stringa) {
if (stringa == "") {
return "NULL";
} else {
String nuovaStringa = stringa.replace('|', '-');
return "'" + nuovaStringa.replaceAll("'", "''") + "'";
}
}
public String getStringa(int stringa) {
Integer i = new Integer(stringa);
return getStringa(i.toString());
}
public String getStringa(float stringa) {
Float i = new Float(stringa);
return getStringa(i.toString());
}
public String getStringa(double stringa) {
Double i = new Double(stringa);
return getStringa(i.toString());
}
public String getIsNullo() {
return " IS NULL ";
}
public String getNotIsNullo() {
return " IS NOT NULL ";
}
public String getStringaLike() {
switch (intTipoDb) {
case 5 : //k_TipoDb_Interbase:
return " CONTAINING ";
default :
return " LIKE ";
}
}
public String getStringaIniziaCon(String stringa) {
String nuovaStringa;
if (stringa == "") {
return "NULL";
} else {
nuovaStringa = stringa.replace('|', '-');
stringa = nuovaStringa.replaceAll("'", "''");
switch (intTipoDb) {
case 5 : //k_TipoDb_Interbase:
return "'" + nuovaStringa + "%'";
case 1 : //k_TipoDb_Access:
return "'" + nuovaStringa + "%'";
case 3 : //k_TipoDb_Oracle:
return "'" + nuovaStringa + "%'";
case 6 : //k_TipoDb_Db2:
return "'" + nuovaStringa + "%'";
case 4 : //k_TipoDb_MySql:
return "'" + nuovaStringa + "%'";
case 2 : //k_TipoDb_SqlServer:
return "'" + nuovaStringa + "%'";
default :
return "'" + nuovaStringa + "%'";
}
}
}
public String getStringaFinisceCon(String stringa) {
String nuovaStringa;
if (stringa == "") {
return "NULL";
} else {
nuovaStringa = stringa.replace('|', '-');
nuovaStringa = nuovaStringa.replaceAll("'", "''");
switch (intTipoDb) {
case 5 : //k_TipoDb_Interbase:
return "'%" + nuovaStringa + "'";
case 1 : //k_TipoDb_Access:
return "'%" + nuovaStringa + "'";
case 3 : //k_TipoDb_Oracle:
return "'%" + nuovaStringa + "'";
case 6 : //k_TipoDb_Db2:
return "'%" + nuovaStringa + "'";
case 4 : //k_TipoDb_MySql:
return "'%" + nuovaStringa + "'";
case 2 : //k_TipoDb_SqlServer:
return "'%" + nuovaStringa + "'";
default :
return "'%" + nuovaStringa + "'";
}
}
}
public String getStringaContiene(String stringa) {
String nuovaStringa;
if (stringa == "") {
return "NULL";
} else {
nuovaStringa = stringa.replace('|', '-');
nuovaStringa = nuovaStringa.replaceAll("'", "''");
switch (intTipoDb) {
case 5 : //k_TipoDb_Interbase:
return "'%" + nuovaStringa + "%'";
case 1 : //k_TipoDb_Access:
return "'%" + nuovaStringa + "%'";
case 3 : //k_TipoDb_Oracle:
return "'%" + nuovaStringa + "%'";
case 6 : //k_TipoDb_Db2:
return "'%" + nuovaStringa + "%'";
case 4 : //k_TipoDb_MySql:
return "'%" + nuovaStringa + "%'";
case 2 : //k_TipoDb_SqlServer:
return "'%" + nuovaStringa + "%'";
default :
return "'%" + nuovaStringa + "%'";
}
}
}
private static String removeChar(String s, char c) {
String r = "";
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != c)
r += s.charAt(i);
}
return r;
}
public String getData(String data) {
String datePattern_rif1 = "dd/MM/yyyy";
String datePattern_rif2 = "HH:mm:ss";
String datePattern_rif3 = "dd/MM/yyyy HH:mm:ss";
String datePattern_dest1 = "MM/dd/yyyy";
String datePattern_dest2 = "HH:mm:ss";
String datePattern_dest3 = "MM/dd/yyyy HH:mm:ss";
SimpleDateFormat dataFormattata;
SimpleDateFormat dataDestFormattata;
// CASO PARTICOLARE PER IL DB2
if (intTipoDb == 6) {
datePattern_dest1 = "yyyy-MM-dd";
datePattern_dest3 = "yyyy-MM-dd HH:mm:ss";
}
// CASO PARTICOLARE PER IL MYSQL
if (intTipoDb == 4) {
datePattern_dest1 = "yyyy-MM-dd";
datePattern_dest3 = "yyyy-MM-dd HH:mm:ss";
}
switch (data.length()) {
case 10 :
dataFormattata = new SimpleDateFormat(datePattern_rif1);
dataDestFormattata = new SimpleDateFormat(datePattern_dest1);
break;
case 8 :
dataFormattata = new SimpleDateFormat(datePattern_rif2);
dataDestFormattata = new SimpleDateFormat(datePattern_dest2);
break;
case 19 :
dataFormattata = new SimpleDateFormat(datePattern_rif3);
dataDestFormattata = new SimpleDateFormat(datePattern_dest3);
break;
default :
dataFormattata = new SimpleDateFormat(datePattern_rif1);
dataDestFormattata = new SimpleDateFormat(datePattern_dest1);
break;
}
try {
switch (intTipoDb) {
case 5 : //k_TipoDb_Interbase:
return "'"
+ dataDestFormattata.format(dataFormattata.parse(data))
+ "'";
case 1 : //k_TipoDb_Access:
return "#"
+ dataDestFormattata.format(dataFormattata.parse(data))
+ "#";
case 3 : //k_TipoDb_Oracle:
return "TO_DATE("
+ dataDestFormattata.format(dataFormattata.parse(data))
+ ")";
case 6 : //k_TipoDb_Db2:
return "'"
+ dataDestFormattata.format(dataFormattata.parse(data))
+ "'";
case 4 : //k_TipoDb_MySql:
return "'"
+ dataDestFormattata.format(dataFormattata.parse(data))
+ "'";
case 2 : //k_TipoDb_SqlServer:
return "CONVERT(datetime,'"
+ dataDestFormattata.format(dataFormattata.parse(data))
+ "',110)";
default :
return "'"
+ dataDestFormattata.format(dataFormattata.parse(data))
+ "'";
}
} catch (ParseException e) {
return "NULL";
}
}
}