powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Date in Oracle vs. Date in VFP
9 сообщений из 9, страница 1 из 1
Date in Oracle vs. Date in VFP
    #33254376
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наступил на грабли...
ХП Ораклова
CREATE OR REPLACE PROCEDURE FM32YO_is_Persons_IN_PUT
(cDepartment IN VARCHAR2, dTIMEOUT IN VARCHAR2,
nHowMuch OUT NUMBER )
IS
BEGIN
SELECT COUNT(*) INTO nHowMuch
FROM fin.tfv_pass Putevki,
fsf.CL_SANAT Sanatorii
WHERE Putevki.dept = cDepartment
AND Putevki.Code_San = Sanatorii.code
AND Putevki.Timeout >= TO_DATE(dTIMEOUT) ;
END ;
/

ее вызов из ВФП
cDepart = '155'
cTime = '01/01/2004'
nResult = SPACE(10)

cSP = "{call fin.FM32YO_is_Persons_IN_PUT(?cDepart, ?cTime, ?@nResult)}"

k = SQLExec(gnConnHandle, cSP)
= MESSAGEBOX('Результат ' + nResult, 48, 'Сообщение')

в результате на условие фильтрации по дате (AND Putevki.Timeout >= TO_DATE(dTIMEOUT)) Фокс не обращает внимания, как с этим бороться?

(ораклово поле Timeout - это поле DATE)
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33254445
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да вроде это оракл не обращает внимания а не вфп (выборка-то на сервере
идёт)

TO_DATE(dTIMEOUT) видимо возвращает пустую дату в процедуре, чё-нить с
конвертацией дат


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33254457
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
да вроде это оракл не обращает внимания а не вфп (выборка-то на сервере
идёт)

TO_DATE(dTIMEOUT) видимо возвращает пустую дату в процедуре, чё-нить с
конвертацией дат


Posted via ActualForum NNTP Server 1.3


не уверен ибо та же конструкция и ПЛ-СКЛ возвращает то что надо вот так:

declare
nHowMuch NUMBER ;

begin
nHowMuch := 125 ;
FM32YO_is_Persons_IN_PUT('21', '01/01/2005', nHowMuch) ;

DBMS_OUTPUT.Enable;
DBMS_OUTPUT.put_line('Результат: ' || nHowMuch);


end ;
/
получаем результат: 3800 из ПЛ-СКЛ
Из фокса получаем 25515 (что есть все записи в таблице)
(
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33254461
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то что в ПЛ-СКЛ я департамент и дату не те поставил - не обращайте внимания.... другой пример просто
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33254521
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так выборка-то в процедуре, из вфп только параметр передаётся. Предлагаю в
процедуре написать SELECT TO_DATE(dTIMEOUT) и посмотреть что там


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33254943
cbani1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можен есть резон указывать и второй параматр для функции to_date(ldData,'dd/mm/yyy') поскольку если ваши настройки для даты в системе не совпадают с Oracle есть риск получить ошибку
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33255342
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cbani1Можен есть резон указывать и второй параматр для функции to_date(ldData,'dd/mm/yyy') поскольку если ваши настройки для даты в системе не совпадают с Oracle есть риск получить ошибку

спасибо - так пошло, правда если простой запрос только:

cDepart = '21'
cTime = '01/01/2005'
cSP = "SELECT N_PUTEV, TIMEOUT FROM fin.tfv_pass WHERE dept = ?cDepart AND TIMEOUT >= TO_DATE(?cTime,'dd/mm/yyyy')"
k = SQLExec(gnConnHandle, cSP)

УРА!!! Спасибо!
Однако, если в ХП, описанной выше приписываю

CREATE OR REPLACE PROCEDURE FM32YO_is_Persons_IN_PUT
(cDepartment IN VARCHAR2, dTIMEOUT IN VARCHAR2,
nHowMuch OUT NUMBER )
IS

BEGIN
SELECT COUNT(*) INTO nHowMuch
FROM fin.tfv_pass Putevki,
fsf.CL_SANAT Sanatorii
WHERE Putevki.dept = cDepartment
AND Putevki.Code_San = Sanatorii.code
AND Putevki.Timeout >= TO_DATE(dTIMEOUT, ''dd/mm/yyy') ;
END ;
/

declare
nHowMuch NUMBER ;

begin

nHowMuch := 125 ;

FM32YO_is_Persons_IN_PUT('21', '01/01/2005', nHowMuch) ;

DBMS_OUTPUT.Enable;

DBMS_OUTPUT.put_line('Результат: ' || nHowMuch);

end ;
/

то все.. уже ХП не работает.. из Оракла не работает..
ORA-01830: date format picture ends before converting entire input string
ORA-06512: at "FIN.FM32YO_IS_PERSONS_IN_PUT", line 11
ORA-06512: at line 8

чего я недочитал-то?
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33255412
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опа--- ступил
вопрос снят
...
Рейтинг: 0 / 0
Date in Oracle vs. Date in VFP
    #33257579
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

Не понимаю, почему ты не хочешь использовать тип DATE напрямую... Как в
процедурах, так и в запросах.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Date in Oracle vs. Date in VFP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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