Параметры datatime в ХП

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Параметры datatime в ХП

Сообщение Денис »

почему если передавать дату как стрингу то нужен формат yyyy-dd-mm, когда как по правилам сервера формат строки yyyy-mm-dd
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Параметры datatime в ХП

Сообщение Andrew™ »

Денис писал(а):почему если передавать дату как стрингу то нужен формат yyyy-dd-mm, когда как по правилам сервера формат строки yyyy-mm-dd
ну это вопрос уже не ко мне, что передаёшь то и получаешь, строка есть строка, формат даты задаётся после установки соединения

Код: Выделить всё

set dateformat ymd 
дату как стринг передавать не надо, т к надо заботиться о формате передаваемой строки, на одном серваке. Для этого надо использовать штатную переменную типа DATE, главное позаботиться, что всед за ней идёт поле типа TIME это можеть быть группа из двух полей или просто два поля

Код: Выделить всё

loc_Date  DATE
loc_Time  TIME
tmp         MAVExecSP
   CODE

  loc_Date = TODAY()
  tmp.BindParameter(loc_Date)
  IF tmp.Run('mySP')
   MAVSHOWERROR
  RETURN
  END
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Пробовал я через стринговую переменную и группу с атрибутом over. При запуске ХП выдается сообщение о невозможности конвертации, из-за этого вернулся к передаче строки

Пробовал примено так:

Код: Выделить всё

sqlSp    MAVExecSp
cDate   STRING(8)
gDate   GROUP, OVER(cDate)
gDate_DATE  DATE
gDate_TIME   TIME
            END
CODE

gDate.gDate_DATE = DATE(...)

sqlSp.BindParameter(cDate)
sqlSp.Run(ХП)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Денис писал(а):Пробовал я через стринговую переменную и группу с атрибутом over. При запуске ХП выдается сообщение о невозможности конвертации, из-за этого вернулся к передаче строки

Пробовал примено так:

Код: Выделить всё

sqlSp    MAVExecSp
cDate   STRING(8)
gDate   GROUP, OVER(cDate)
gDate_DATE  DATE
gDate_TIME   TIME
            END
CODE

gDate.gDate_DATE = DATE(...)

sqlSp.BindParameter(cDate)
sqlSp.Run(ХП)
а читать повнимательнее можешь?
В КАЧЕСТВЕ ВХОДНОГО ПАРАМЕТРА ДОЛЖНА БЫТЬ НЕ STRING(8) - её вааще не требуется, ЭТО ПРИДУМАЛИ ВЕЛОСИПЕДИСТЫ, А ПОЛЕ ТИПА DATE, за которым в декларации идёт поле типа TIME
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Andrew Myalin писал(а): а читать повнимательнее можешь?
В КАЧЕСТВЕ ВХОДНОГО ПАРАМЕТРА ДОЛЖНА БЫТЬ НЕ STRING(8) - её вааще не требуется, ЭТО ПРИДУМАЛИ ВЕЛОСИПЕДИСТЫ, А ПОЛЕ ТИПА DATE, за которым в декларации идёт поле типа TIME
Непойму я чет как это в текст проги перевести :). Напиши примерчик вызова ХП с 2 параметрами типа datetime и 1 int пожалуста
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

кажись разобрался, ща пробовать буду
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

все, спасибо
Ответить