[ Fidelito_Castro @ 10.03.2012. 10:41 ] @
Pokusavam da unesem zapis u bazu iz aplikacije ali ne uspevam to da uradim.
Kada u promenljivu upitAmbulanta stavim string literal, zapis se uspesno upise u bazu.
Medjutim, problem je kada pokusam sa parametrima koje unosi korisnik, te parametre nece da prosledi u bazu podataka.

Kod sa string-om literal, koji uspesno prolazi:

Code:

//Unos podataka u bazu
         public void UnosAmbulanta(String SifraA,String Naziv/*,double AktuelnaCena*/) {
        this.PovezivanjeDB();
        try {
            this.naredba = this.kon.createStatement();

          //Upit
            String upitAmbulanta ="INSERT INTO Ambulanta (SifraA,Naziv) VALUES ('111111111','Proba');"; //OVAJ UPIT PROLAZI


            //Izvrsavanje upita
            this.naredba.execute(upitAmbulanta);
            naredba.close();
            kon.close();


        } catch (java.sql.SQLException e) {
            e.printStackTrace();
        }
      }


Kod sa prosledjenim parametrima, koji nece da prodje:

Code:

       //Unos podataka u bazu
         public void UnosAmbulanta(String SifraA,String Naziv/*,double AktuelnaCena*/) {
        this.PovezivanjeDB();
        try {
            this.naredba = this.kon.createStatement();

           //Upit
            String upitAmbulanta ="INSERT INTO Ambulanta (SifraA,Naziv) VALUES ('"+SifraA+"' ,'"+Naziv+"')" +" ;"; // PROBLEM JE U OVOJ LINIJI KODA


            //Izvrsavanje upita
            this.naredba.execute(upitAmbulanta);
            naredba.close();
            kon.close();


        } catch (java.sql.SQLException e) {
            e.printStackTrace();
        }
      }


Ako neko ima ideju u cemu je problem, zamolio bih ga za pomoc...
[ dule_ns @ 11.03.2012. 10:38 ] @
1) Da li ti javlja neku gresku, ako da ispisi
2) Nemoj ovako da pravis insert (nemoj da lepis parametre u stringu) nego koristi preparedstatement i setuj parametre
3) ako nije 1) da li si negde iskljucio autoCommit
[ FooLControL @ 11.03.2012. 23:07 ] @
Kao sto je Dule rekao, trebao si okaciti gresku koju izbacuje. I koristi PreparedStatement za unos.

Code:

        try {
            PreparedStatement stm = DBConnection.getConnection().prepareStatement("INSERT INTO Ambulanta (Sifra, Naziv) VALUES (?, ?)");

            stm.setString(1, Sifra);
            stm.setString(2, Naziv);

            stm.executeUpdate();
            stm.close();

        } catch (SQLException e) {
            e.printStackTrace();
        }