Ошибка при получении com.jnetdirect.jsql.JSQLException: недопустимый индекс параметра: 2 Допустимый диапазон от 1 до 1 При вставке в базу данных? - PullRequest
0 голосов
/ 28 февраля 2012

Я использую SQL Server 2005 и JDBC. Попытка вставить значения в таблицу ContentModification с кодом ниже

  java.sql.Date date= new java.sql.Date(Calendar.getInstance().getTimeInMillis());
  sql = "insert into ContentModification values(?,?)";
         pc.setString(1, space);
         pc.setDate(2, date); // line 3
     pc.executeUpdate();//line 4

В строке 3 я получаю сообщение об ошибке com.jnetdirect.jsql.JSQLException: недопустимый индекс параметра: 2 Допустимый диапазон: от 1 до 1 я не понимаю, в чем причина этого?

Мой скрипт создания таблицы ниже

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ContentModification](
[XWC_NAME] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[XWC_LASTUPDATE] [datetime] NOT NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

1 Ответ

1 голос
/ 29 февраля 2012

При использовании пробной лицензии JSQLConnect (5.95), jdk 1.6 и SQL Express 2008 ваш код выполняется успешно.Это исключение обычно возникает, когда у вас есть несоответствие между числом '?'отметки в PreparedStatement и индекс setDate () / setString ()

Вы можете попробовать изменить эту строку:

 sql = "insert into ContentModification(XWC_NAME, XWC_LASTUPDATE) values(?,?)";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...