K
Knut
Gast
Hallo,
ich möchte das man in meinen Programm 4-stellige Zahlen eingeben kann. Es soll möglich sein dieses in Bereichen zu machen 1234-5678 oder auch einzelne 9999, getrennt sollen die Zahlen und Bereiche mit einem Komma.
Mit diesen Werten soll später eine SQL-Anweisung erstellt werden, in der entweder = oder Between x And y abgefragt wird. Aber es will nicht so recht funktionieren, die betroffenden Programmteile sehen so aus:
und wenn die Eingabe zum Beispiel: "1234-5678,9999" bekomme ich das ausgeben:
-->0(1234-5678,9999) / 14 -->
-->1(234-5678,9999) / 14 -->
-->2(34-5678,9999) / 14 -->
-->3(4-5678,9999) / 14 -->
-->4(-5678,9999) / 14 -->
-->5(5678,9999) / 14 -->
-->6(678,9999) / 14 -->
-->7(78,9999) / 14 -->
-->8(8,9999) / 14 -->
-->9(,9999) / 14 -->
-->10(9999) / 14 -->
-->11(999) / 14 -->
-->12(99) / 14 -->
-->13(9) / 14 -->
-->14() / 14 -->
WHERE (selektion.werbecodes BETWEEN 1234 AND 5678)
eigentlich sollte es aber WHERE (selektion.werbecodes BETWEEN 1234 AND 5678 OR selektion.werbecodes = 9999) sein
ich möchte das man in meinen Programm 4-stellige Zahlen eingeben kann. Es soll möglich sein dieses in Bereichen zu machen 1234-5678 oder auch einzelne 9999, getrennt sollen die Zahlen und Bereiche mit einem Komma.
Mit diesen Werten soll später eine SQL-Anweisung erstellt werden, in der entweder = oder Between x And y abgefragt wird. Aber es will nicht so recht funktionieren, die betroffenden Programmteile sehen so aus:
Code:
int start = 0;
for(int ende = 0; ende <= str_wcodes.length(); ende++)
{
if(str_wcodes.substring(ende) == ",")
{
query += "selektion.werbecode " + ver_wcodes(str_wcodes, start, ende) + " OR ";
abfr = ver_wcodes(str_wcodes,start,ende);
start = ende + 1;
}
System.out.println("-->" + ende + "(" + str_wcodes.substring(ende) + ") / " + str_wcodes.length() + " --> " + abfr);
}
query += "selektion.werbecodes " + ver_wcodes(str_wcodes, start, str_wcodes.length()) + ") ";
Code:
private String ver_wcodes (String eing, int start, int ende)
{
String verarbeitung = eing.substring(start,ende);
if (verarbeitung.length() == 4)
{
verarbeitung = "= " + verarbeitung;
}else
{
verarbeitung = "BETWEEN " + verarbeitung.substring(0,4) + " AND " + verarbeitung.substring(5,9);
}
return verarbeitung;
}
und wenn die Eingabe zum Beispiel: "1234-5678,9999" bekomme ich das ausgeben:
-->0(1234-5678,9999) / 14 -->
-->1(234-5678,9999) / 14 -->
-->2(34-5678,9999) / 14 -->
-->3(4-5678,9999) / 14 -->
-->4(-5678,9999) / 14 -->
-->5(5678,9999) / 14 -->
-->6(678,9999) / 14 -->
-->7(78,9999) / 14 -->
-->8(8,9999) / 14 -->
-->9(,9999) / 14 -->
-->10(9999) / 14 -->
-->11(999) / 14 -->
-->12(99) / 14 -->
-->13(9) / 14 -->
-->14() / 14 -->
WHERE (selektion.werbecodes BETWEEN 1234 AND 5678)
eigentlich sollte es aber WHERE (selektion.werbecodes BETWEEN 1234 AND 5678 OR selektion.werbecodes = 9999) sein