|
|
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
Моя функция должна вычислить ближайшую дату поступления указанного товара, т.е. входные параметры: @Tov – кодТовара, @DatTov – дата. Эту функцию я вызываю из формы, где объявляю два параметра: tov = Me.Код dtov = Forms!Возврат!Дата Set cmd = New ADODB.Command cmd.Parameters.Append cmd.CreateParameter("@Tov", adInteger, adParamInput, , tov) cmd.Parameters.Append cmd.CreateParameter("@DatTov", adDBDate, adParamInput, , dtov) Т.е. дата берется из формы, и функция ничего не вычисляет, а если в функции принудительно проставить дату, то все нормально. Что нужно переделать??? Помогите!!!!!!!!!!! CREATE FUNCTION getSebest2 (@Tov int, @DatTov datetime ) RETURNS datetime AS BEGIN DECLARE @dMax AS datetime declare @TovS as real set @dMax = (SELECT MAX(dbo.Поездка.Дата) AS MaxD FROM dbo.Поездка INNER JOIN dbo.Товар ON dbo.Поездка.НомерПоездки = dbo.Товар.КодПоездки WHERE (dbo.Поездка.Дата <= CONVERT(DATETIME, @DatTov, 102)) AND (dbo.Поездка.Отмечено = 1) AND (dbo.Товар.ПоездкаПередачаПродажа = 1) AND (dbo.Товар.КТН = @Tov)) RETURN @dMax END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 12:56 |
|
||
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
Вероятно, нужно подсунуть дату SQL'ю в правильно отформатированном виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:53 |
|
||
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
Стоп... А почему adDBDate? А если adDate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:56 |
|
||
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
cmd.Parameters.Append cmd.CreateParameter("@Tov", adInteger, adParamInput, , tov) cmd.Parameters.Append cmd.CreateParameter("@DatTov", adInteger , adParamInput, , CDBL(dtov)-2 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 15:36 |
|
||
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
И еще вопрос, зачем делать так: CREATE FUNCTION getSebest2 (@Tov int, @DatTov datetime ) ... WHERE (dbo.Поездка.Дата <= CONVERT(DATETIME, @DatTov, 102)) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 15:45 |
|
||
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
1)тип adDBDate - indicates a date value - yyyymmdd 2) когда создаем представление, и там задаем отбор по дате, то автоматически введення дата преобразуется в строку - CONVERT(DATETIME, @DatTov, 102)) - что задает формат ANSI - yyyy.mm.dd В общем может есть еще какие - нибудь идеи у кого-нибудь, а то пока никак Заранее огромное СПАСИБО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2004, 06:38 |
|
||
|
Передача Даты в UDFфункцию SQL Server
|
|||
|---|---|---|---|
|
#18+
Идея тут простая - передавать дату в том виде, в котором её понимают все и вся. А именно, в символьном представлении. Далее преобразовывать её к штатному типу datetime соответствующими ф-иями преобразования сервера. Можно, также, воспользоваться способностью сервера к неявному преобразованию, передав ему в качестве входного параметра строковое представление для даты в том формате, из которого он всегда сделает сам неявное преобразование. А именно, в формате ISO 'yyyymmdd'. См. FAQ , например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2004, 07:04 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32407129&tid=1676647]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 463ms |

| 0 / 0 |
