Автор | Сообщение |
|
| постоянный участник
|
Пост N: 2827
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.05.13 12:38. Заголовок: Новые типы переменных ?
Подскажите пожалуйста, а с какого времени существуют новые типы данных в базах Харбор/хХарбор ? + AutoInc 4 Auto increment = ModTime 8 Last modified date & time of this record ^ RowVers 8 Row version number; modification count of this record @ DayTime 8 Date & Time I Integer 1, 2, 3, 4 or 8 Signed Integer ( Width : )" },; T Time 4 or 8 Only time (if width is 4 ) or Date & Time (if width is 8 ) (?) V Variant 3, 4, 6 or more Variable type Field Y Currency 8 64 bit integer with implied 4 decimal B Double 8 Floating point / 64 bit binary Не заметил разницы между этими типами (или не понял): + AutoInc 4 Auto increment ^ RowVers 8 Row version number; modification count of this record Кто может разъяснить их применение ? Какой максимальный размер импорта файла для типов: M Memo P Picture B Blob V VarField Не смог записать ни в одно поле файл размером 3198 Мб через утилиту DBedit. Ошибка - Скрытый текст Application Internal Error - c:\clipbin\dbedit.exe Terminated at: 2013.05.06 13:00:49 Неисправимая ошибка 9006: hb_xgrab не может распределить память Called from MEMOREAD(0) Called from _FREAD(0) in \ts\clip50.lib\_EDITMEM.prg Called from USER(0) in \ts\clip50.lib\_EDITMEM.prg Called from (b)EDITMEMO(0) in \ts\clip50.lib\_EDITMEM.prg Called from TEXTEDIT(0) in \ts\clip50.lib\_TEXT.prg Called from EDITMEMO(0) in \ts\clip50.lib\_EDITMEM.prg Called from EDITVARFIELD(1600) in source\dbedit.prg Called from (b)GETCOL(1573) in source\dbedit.prg Called from GETBROWSE(0) in \ts\clip50.lib\_editbro.prg Called from EDITBROWSE(0) in \ts\clip50.lib\_editbro.prg Called from DBMENU(0) in \ts\clip50.lib\_dbmenu.prg Called from MAIN(821) in source\dbedit.prg
| Может что не так делаю ?
|
|
|
Ответов - 158
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 3861
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.09.21 10:53. Заголовок: Andrey см. http://c..
|
|
|
|
| постоянный участник
|
Пост N: 7042
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.09.21 18:30. Заголовок: Так правильно ? :sm..
Так правильно ? cFilter := HB_CTOT( SKLAD->TSZ, "YYYYMMDD" ) + "==" + DTOS(dDate) + ".AND. !DELETED()"
|
|
|
|
| постоянный участник
|
Пост N: 3863
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.09.21 21:38. Заголовок: Andrey пишет Так пра..
Andrey пишет Если работает то, да Еще такой вариант cDat := HB_DTOC(Date(), 'YYYY-MM-DD') cFilter := '!DELETED() .AND. "'+cDat+'" $ HB_TSTOSTR( SKLAD->TSZ)'
|
|
|
|
| постоянный участник
|
Пост N: 1694
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.09.21 22:04. Заголовок: Andrey пишет: Так п..
Andrey пишет: цитата: | Так правильно ? cFilter := HB_CTOT( SKLAD->TSZ, " |
| Нет. Если я правильно понял у SKLAD->TSZ тип "T", а HB_CTOT ожидает принять в качестве первого аргумента строку. можно так hb_LeftEq( HB_TTOS(SKLAD->TSZ), DTOS(dDate) ) или так Empty( Int( SKLAD->TSZ - dDate ) ) или через HB_TTOC и т.п.
|
|
|
|
| постоянный участник
|
Пост N: 7049
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.09.21 23:01. Заголовок: Вообще то по датам и..
Вообще то по датам и даже так ищёт: cFilter := "(TSZ>=CTOD('10.09.21').AND.TSZ<=CTOD('25.09.21') ).AND.!Deleted()"
|
|
|
|
| постоянный участник
|
Пост N: 3873
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.09.21 23:55. Заголовок: Andrey пишетпо датам..
Andrey пишет тогда проще можно SET DELETED ON SET FILTER TO TSZ >= 0d20210910 .AND. TSZ <= 0d20210925 GO TOP ... SET DELETED OFF
|
|
|
|
| постоянный участник
|
Пост N: 1696
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.09.21 09:22. Заголовок: Andrey пишет: Но мн..
Andrey пишет: цитата: | Но мне нужно время полностью 16:09:11.557 ! Как тогда указать формат ? |
| "hh:mm:ss.fff" ? dDate := hb_TToD( hb_DateTime(), @cTime, "hh:mm:ss.fff" ) ? hb_DToC(dDate, 'YYYY-MM-DD'), cTime P.S. Я знаю, SergKis написал уже, но просто хотелось еще раз привлечь внимание Андрея к функции hb_TToD. Очень удобна для разбивки переменной (поля) DateTime на Date и Time , с последующим изменением в DATEPICKER и TIMEPICKER (MiniGUI).
|
|
|
|
| постоянный участник
|
Пост N: 1697
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.09.21 10:15. Заголовок: Andrey пишет: Вообщ..
Andrey пишет: цитата: | Вообще то по датам и даже так ищёт |
| Это понятно цитата: | When date and timestamp values are used in <, <=, >, >=, = operations then VM compares only date part in both values. |
| SergKis пишет: цитата: | тогда проще можно SET DELETED ON SET FILTER TO TSZ >= 0d20210910 .AND. TSZ <= 0d20210925 |
| Да, но учтите, что Андрею скорее всего нужно, наверное, SET DELETED ON SET FILTER TO TSZ >= dDate1 .AND. TSZ <= dDate2 или SET FILTER TO TSZ >= tDateTime1 .AND. TSZ <= dDateTime2
|
|
|
|
| постоянный участник
|
Пост N: 3874
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.09.21 10:57. Заголовок: Петр пишет что Андре..
Петр пишет цитата: | что Андрею скорее всего нужно, наверное, SET DELETED ON SET FILTER TO TSZ >= dDate1 .AND. TSZ <= dDate1 |
| Ему нужно вариант от составленной строки SET FILTER TO &('TSZ >= 0d20210910 .AND. TSZ <= 0d20210925') Он пишет выше везде cFilter := "..." и получить 'TSZ >= 0d'+DtoS(dDate1) и.т.д. проще
|
|
|
|
| постоянный участник
|
Пост N: 1698
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.09.21 12:40. Заголовок: SergKis пишет: Ему ..
SergKis пишет: цитата: | Ему нужно вариант от составленной строки |
| Возможно. PUBLIC dDate1, dDate2 SET FILTER TO &('TSZ >= dDate1 .AND. TSZ <= dDate2') - тоже ведь не сложно? Но это детали реализации и предпочтений, в общем - вкусовщина.
|
|
|
|
| постоянный участник
|
Пост N: 3875
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.09.21 14:46. Заголовок: Петр пишет тоже ведь..
Петр пишет Дело не в этом (переменные лучше PRIVATE вместо PUBLIC), а в том что строку фильтра можно сохранить в базе (там не только период но др. данные запроса), обозвав его "Отчет за I квартал ..." и таких строк\отчетов может быть много (создавать их может сам клиент или админ, гл. бух, "начальник транспортного цеха" и т.д.). Использовать хоть удаленный клиент и длительное время. PS В LetoDb строка фильтра должна быть в таком виде, как у Андрея, оптимизированный фильтр. В LetoDbf, кроме такого фильтра, есть механизм переноса PRIVATE, PUBLIC переменных на сторону сервера для исп. в выражении фильтра.
|
|
|
|
|
| постоянный участник
|
Пост N: 7050
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.09.21 19:31. Заголовок: Спасибо вам БОЛЬШОЕ ..
Спасибо вам БОЛЬШОЕ !
|
|
|
|
| постоянный участник
|
Пост N: 7056
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.09.21 18:11. Заголовок: tDateTime := hb_Date..
tDateTime := hb_DateTime() А как сделать пустую tDateTime ? Для даты есть функция CTOD(""), а здесь как ? И как проверить на пустое значение ? Функция Empty(tDateTime) будет работать ?
|
|
|
|
| постоянный участник
|
Пост N: 1706
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.09.21 20:33. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как сделать пустую tDateTime ? Для даты есть функция CTOD(""), а здесь как ? |
| hb_CToT("") Andrey пишет: цитата: | Функция Empty(tDateTime) будет работать ? |
| Да. Empty() работает для всех скалярных типов.
|
|
|
|
| постоянный участник
|
Пост N: 7057
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.09.21 01:42. Заголовок: Петр СПАСИБО БОЛЬШОЕ..
Петр СПАСИБО БОЛЬШОЕ !
|
|
|
|
| |
Пост N: 678
Зарегистрирован: 08.07.06
|
|
Отправлено: 15.09.21 12:39. Заголовок: Andrey пишет: Для д..
Andrey пишет: цитата: | Для даты есть функция CTOD(""), |
| Чем не устраивает нулевое значение даты 0d0 ?
|
|
|
|
| постоянный участник
|
Пост N: 7060
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.09.21 14:33. Заголовок: Вопрос был - А как с..
Вопрос был - А как сделать пустую tDateTime ?
|
|
|
|
| Администратор
|
Пост N: 4042
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.09.21 15:43. Заголовок: кроме hb_ctot("&..
кроме hb_ctot("") есть еще hb_datetime(0, 0, 0, 0, 0, 0, 0)
|
|
|
Ответов - 158
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|