|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
У меня в Oracle тип поля Date. На клиента приходит DateTime, это в принципе не страшно, но юзвери ругаются, что в гриде отображается лишняя информация (время). Нельзя-ли как-нибудь указать, что бы при формировании SqlResult он преобразовывал DateTime в Date. Или Указать в гриду, что б он отображал DateTime как Date. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2005, 09:01 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Варианты: 1. .Column2.ControlSource = "NVL(TTOD(YourCursor.DTDok), {})" 2. Получить результат во временный курсор (например temp) и затем скопировать данный в постоянный: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2005, 09:09 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Aleksey-K, спасибо. Мне больше понравился первый вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2005, 12:48 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
А почему в команде отправляемой серверу сразу не использовать функцию CAST()? например так =sqlexec(HndlConn,'SELECT CAST(DATETIME_FIELD AS DATE) AS DATE_FIELD FROM REMOTETABLE') ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2005, 05:43 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
А что, в ORACLE есть тип данных DATE (я не знаток ORACLE)? Если есть, то и применяйте его а таблицах, а не DATETIME. Через SQLEXEC вы посылаете команду в синтаксисе сервера (ORACLE), а не клиента (VFP) - pass-through однако :) С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2005, 08:33 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Aleksey-KА что, в ORACLE есть тип данных DATE (я не знаток ORACLE)? Если есть, то и применяйте его а таблицах, а не DATETIME. Через SQLEXEC вы посылаете команду в синтаксисе сервера (ORACLE), а не клиента (VFP) - pass-through однако :) С уважением, Алексей. 1) в Oracle есть тип поля DATE. (см рисунок. вверху) 2) именно этот тип у меня и установлен. 3) Но на клиента возвращается DateTime (см рисунок. внизу) Но так как время мне совершенно не важно, я воспользовался твоим советом и Юзвери остались довольны. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2005, 14:08 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Hi Maltsev Max! 1) Тип данных DATE в Oracle соответствует типу DateTime некоторых других СУБД - т.е. он включает в себя и дату и время. 2) Если забирать данные через SQLEXEC - то только вышеописанным шаманством и можно бороться - IMHO это неконструктивно в общем случае - заметно больше телодвижений. 3) Если забирать данные через RV, или (если позволяет версия фокса) через CAD - то можно ЯВНО указать что тип данного поля D - и фокс сам произведёт "усечение времени". Это уже поинтереснее - НО если реально данные в таблице ИМЕЛИ часть со временем, то мы получим проблемы с обновлением таких записей - придётся отключать проверку на конфликт совместного обновления (ставить WhereType = 1), или явно исключать данное поле из WHERE части формируемых команд UPDATE и DELETE - конечно в случае если есть доступ к такой продвиутой возможности - а он есть только в CAD - в RV никак... 4) К сожалению в фоксе нету простого и понятного способа ОТОБРАЖАТЬ и РЕДАКТИРОВАТЬ DateTime без time части - если писать функцию в качестве ControlSource - поле будет ReadOnly... Придётся либо рисовать свой весьма непростой контрол, либо делать всё БЕЗ прямой привязки через ControlSource - т.е. программно присваивать Value контролу, и потом обратно по REPLACE в поле курсора забрасывать... Для показа в гриде это ещё сложнее... Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2005, 01:57 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Я тоже не знаток Oracle :(. Вроде в Oracle есть функция Extract, может ей собрать возвращаемую дату в нужном формате? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2005, 05:14 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Hi WORKSNS! Если "собрать", или, что более правильно, просто отформатировать дату как текст - то конечно всё замечательно будет выглядеть... За исключением того, что править такие данные будет никак нельзя - это же уже строка, а не дата... Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2005, 01:53 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Igor Korolyov Hi WORKSNS! За исключением того, что править такие данные будет никак нельзя - это же уже строка, а не дата... Posted via ActualForum NNTP Server 1.3 Правят в гриде редко :), а в форме редактирование сделать CTOD, а при сохранении DTOC не так сложно :). Да и вопрос "или" был. для отображения вполне достаточно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2005, 04:53 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Не понимаю я вас ... если преобразование даты в строку допустимо то используйте в запросе TO_CHAR() с нужным вам форматированием; если не допустимо - используйте пару TO_DATE(TO_CHAR()) с нужным вам форматированием ... делов-то ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2005, 13:31 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
NSFuimusНе понимаю я вас ... если преобразование даты в строку допустимо то используйте в запросе TO_CHAR() с нужным вам форматированием; если не допустимо - используйте пару TO_DATE(TO_CHAR()) с нужным вам форматированием ... делов-то ... А я и не спорю. Просто по словам моего знакомого, "ORACLE - монстр и в некоторых моментах многие языки 'курят' по сравнению с PL". Т.е. можно сделать вывод что получение в курсор данных не в "том" виде, как хотелось бы, скорее от незнания Oracle, нежели от его недостатков . И я еще раз подчеркиваю - я знаю, что есть Oracle, но я никогда не работал с ним . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2005, 21:18 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
Hi NSFuimus! Проблема не в Oracle как таковом, а в ODBC драйвере - он конвертирует этот тип в фоксовый DateTime (по сути это конечно правильно). Так что все пляски на стороне Oracle не приведут к нужному результату - ODBC всё испортит. Так что проблему надо решать на стороне фокса - используя RV или (что конечно лучше) CAD. Ну или рисовать свой контрол, который будет редактировать DateTime поле так как будто оно имеет тип Date. 2 WORKSNS Правят в гриде редко :) Это кто как :) Я вот напротив считаю что править в гриде очень много чего можно и нужно - начиная от справочников (если там полей немного) и заканчивая сложными многотабличными формами. И вообще в форме типа "заголовок+строки" если сделать правку "строк" не в гриде а в отдельной форме - то это как правило будет явный перебор. Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2005, 20:10 |
|
VFP+Oracle Тип Date
|
|||
---|---|---|---|
#18+
В textbox свойство Value показываем значение поля из курсорадаптера ttod(cursoradapter1.field1) В методе Refresh формы это будет выглядеть примерно так: ThisForm.Grid1.column1.textbox1.value=ttod(cursoradapter1.field1) В textbox метод Valid записываем значение поля в курсорадаптер replace next1 alias.field1 with This.Value ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 07:13 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1584229]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 327ms |
total: | 479ms |
0 / 0 |