Я получаю исключение SQL: индекс параметра выходит за пределы диапазона (1> число параметров, которое равно 0) ошибка

0
cstm=conn.prepareCall("{call ekleSP}");
cstm.setInt(1, Integer.parseInt(tb_1.getText()));
cstm.setString(2, tb_2.getText());
cstm.setString(3, tb_3.getText());
cstm.setString(4, tb_4.getText());
cstm.setString(5, tb_5.getText());
cstm.execute();

Ekle означает, что это означает, что он используется как id, имя, фамилия, номер телефона, пол и ım, используя эту хранимую процедуру:

CREATE DEFINER='root'@'localhost' PROCEDURE 'ekleSP'(IN id INT(11),IN 
uye_adi VarChar(45),
IN uye_soyadi VarChar(45), IN uye_tel VarChar(11),IN cinsiyet VarChar(5))
BEGIN
 INSERT into tbluyeler(id,uye_adi,uye_soyadi,uye_tel,cinsiyet) values 
('?','?','?','?','?');   
END
Теги:
java-stored-procedures

1 ответ

0

Я понял, что вы, ребята, понимаете,

cstm=conn.prepareCall("{call ekleSP(?,?,?,?,?)}");

И я исправил свою процедуру, подобную этой, чтобы отправить то, что я получаю из текстовых полей, в tbluyeler

CREATE DEFINER='root'@'localhost' PROCEDURE 'ekleSP'(IN id INT(11),IN 
uye_adi VarChar(45),
IN uye_soyadi VarChar(45), IN uye_tel VarChar(11),IN uye_cinsiyet 
VarChar(5))
BEGIN
INSERT into tbluyeler(id,uye_adi,uye_soyadi,uye_tel,uye_cinsiyet) values 
(id,uye_adi,uye_soyadi,uye_tel,uye_cinsiyet);   
END
  • 0
    Как примечание стороны; Я считаю, что обычно хорошей идеей является минимизировать количество хранимых параметров proc (и объявлять идентификаторы переменных), дублирующие имена полей таблицы. Это не должно вызывать проблемы в этом случае (кроме читабельности), но было известно, причина трудно точно определить проблемы в другом месте примера .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню