powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ХП MS SQL datetime
9 сообщений из 9, страница 1 из 1
ХП MS SQL datetime
    #39152817
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, коллеги!
Наткнулся на не понимание работы хранимой процедуры.
есть:
1. MS SQL 2014
2. net.sourceforge.jtds.jdbc.Driver
3.
Код: sql
1.
UPDATE document	SET DocDate = ? WHERE id = ?

4. параметр: new Timestamp(dateMLS)
Работает как часы.

Сделал
1.
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE PROCEDURE dbo.speDocument
	 @idDocument int = NULL
	, @DocDate datetime = NULL
AS
...
UPDATE document SET DocDate = @DocDate WHERE id = @idDocument
 ....

2.
Код: sql
1.
{call speDocument(?,?)}


Получаю
java.sql.SQLException: Ошибка при преобразовании типа данных varchar к datetime.

Где происходит преобразование Timestamp в String?
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152832
WarAnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,

авторUPDATE document SET DocDate = 1? WHERE id = 2?

авторUPDATE document SET DocDate = 2@DocDate WHERE id = 1@idDocument

попутали параметры
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152834
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WarAnt,
нет
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152837
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa java.sql.SQLException: Ошибка при преобразовании типа данных varchar к datetime.

Где Java код? Какие типа в колонках?
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152847
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
id - int
DocDate - datetime

кода как такового нет, есть sping ioc bean, могу выложить
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152851
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasaмогу выложить
Нет, не стоит себя утруждать.
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152864
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
если поможет, сделаю над собой усилие
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<bean id="документы.dao" class="web.model.db.jdbc.UpdateDao">
	<property name="sqlString">
	<value>
	UPDATE document SET DocDate = ? WHERE id = ?
	</value>
	</property>
	<property name="param">
	<list>
	<bean p:pattern="dd.MM.yyyy" class="web.model.value.DateSqlValue">
	   <property name="param">
	       <bean p:paramName="DocDate" class="web.model.value.ParamValue"/>
	   </property>
	</bean>
	<ref  bean="id"/>
	</list>
	</property>
</bean>


или это
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<bean id="документы.dao" p:sqlString="{call speDocument(?,?)}" class="web.model.db.jdbc.UpdateDao">
	<property name="param">
	<list>
	<ref  bean="id"/>
	<bean p:pattern="dd.MM.yyyy" class="web.model.value.DateSqlValue">
	   <property name="param">
	       <bean p:paramName="DocDate" class="web.model.value.ParamValue"/>
	   </property>
	</bean>
	</list>
	</property>
</bean>
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152867
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,

Откуда UpdateDao знает про порядок параметров?
...
Рейтинг: 0 / 0
ХП MS SQL datetime
    #39152877
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
выдрал и упростил кусок
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
        try {
            ParameterMetaData pmd = ps.getParameterMetaData();
            int idxPar=1;
        for(int size = pmd.getParameterCount(), i = 1; i <= size; i++) {
            Object par = this.param.get(i - 1);
            Object object = par instanceof InterfaceValue ? ((InterfaceValue) par).getValue(ctx) : par;

            this.loggerSQL.debug("{}: idx={} value={}",new Object[]{this.idBean,i,(object == null ? "null" : object.toString())});

            if (object == null) {
                ps.setNull(idxPar++, type);
            } else {
                ps.setObject(idxPar++, object);
            }   
        }   catch   (IndexOutOfBoundsException iobe) {
            //  не додали параметров запроса в 'this.param'
            throw new SQLException(iobe);
        }
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ХП MS SQL datetime
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]