Sorry za słaby temat ale nie miałem lepszego pomysłu. Mam następujący problem. Napisałem dziadostwo wyszukujące dane z bazy sqlowej, w zależności od uzupełnionych tf'ów. Kod generuje dynamicznie zapytanie. Samo zapytanie działa fajnie i szybko wyszukuje nawet spore porcje danych. Chciałbym jednak aby "lepiej trafione dane" były wyżej wypozycjonowane w tabeli z wynikami. Wpadłem na pomysł że dodam to tabeli kolumne do której będę dodawał wartość jeśli wyszukiwany element będzie się pokrywał z bazą. Nie wiem czemu ale wszystko działa do momentu gdy nie szukam więcej niż dwóch parametrów. Nie mam pojęcia o co chodzi.
KOD :
bufor=(String)slJava.getText();
if (bufor!=null&&!bufor.equals("")){
int buforint = Integer.parseInt(bufor);
if (licznik!=0){
wherequery.append(" OR ");
}
if (buforint==1){
wherequery.append(" java between 1 and 3");}
if (buforint==2){
wherequery.append(" java between 2 and 3");}
if (buforint==3){
wherequery.append(" java=3");
}
licznik++;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(sql.url, sql.login,sql.password);
try {
Statement st = conn.createStatement();
ResultSet rs2 = st.executeQuery("SELECT * FROM dbo.Kandydaci WHERE java between 1 and 3");
while(rs2.next()){
trafnosc = rs2.getInt("trafnosc");
}
trafnosc=trafnosc+45;
st.executeUpdate ("UPDATE dbo.Kandydaci SET trafnosc='"+trafnosc+"' WHERE java between 1 and 3");
}
catch (SQLException e) {
e.printStackTrace();
}
}
catch (SQLException e) {
System.out.println("Uwaga! Mamy problemy z połączeniem!");
e.printStackTrace();
}
}
Pól jest cała masa, ale kod w nich jest analogiczny.