Автор | Сообщение |
|
| постоянный участник
|
Пост 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: 3962
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.06.20 13:46. Заголовок: dBASE Version 7 - эт..
dBASE Version 7 - это продукт еще из прошлого века, со своим форматом, там имя поля может быть до 32-х символов. Харбор его не поддерживает. Что касается номера версии dbf - это сигнатура файла, его первый байт, то стандартными средствами харбора его считать нельзя
|
|
|
|
| |
Пост N: 256
Зарегистрирован: 05.11.05
|
|
Отправлено: 25.06.20 22:55. Заголовок: Pasha пишет: станда..
Pasha пишет: цитата: | стандартными средствами харбора его считать нельзя |
| Любой файл можно прочитать. Просто как файл, не dbf.
|
|
|
|
| Администратор
|
Пост N: 3963
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.06.20 09:00. Заголовок: Стандарт - это получ..
Стандарт - это получить средствами rdd. Все остальное - неформат. Например, в pArea есть структура dbfHeader, в которой этот байт уже есть, и файл читать не надо
|
|
|
|
| постоянный участник
|
Пост N: 3271
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.06.20 10:50. Заголовок: rvu пишет Любой файл..
rvu пишет цитата: | Любой файл можно прочитать. Просто как файл, не dbf |
| Не все так просто. Например установка cdp в dbf не держится, точно уже не помню, но после закрытия dbf терялась. Пробовали устанавливать, правда, еще на hb 2.0 потом забросили с cdp. Ф-я была такая HB_FUNC( DBSETCDP ) { AREAP pArea = hb_rddGetCurrentWorkAreaPointer(); if( pArea && ISCHAR(1) ) { char * pCdp = hb_parc(1); if( pCdp ) pArea->cdPage = hb_cdpFind( (char *) pCdp ); } }
|
|
|
|
| постоянный участник
|
Пост N: 6734
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.07.20 14:56. Заголовок: Всё понятно, что про..
Всё понятно, что прочитать какой формат DBF - это сложно. А есть список какие типы DBF может читать Харбор ? Я так понял что не все DBF можно открыть Харбором.
|
|
|
|
| постоянный участник
|
Пост N: 6799
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.08.20 20:07. Заголовок: Беру поле базы "..
Беру поле базы "T" и загоняю в System.Clipboard := cValToChar(oBrw:GetValue(nCol)) Как эту строку записать в другое поле "T" ? Пробовал так, что то не та функция: xWrt := HB_STRTOTS( System.Clipboard ) oBrw:SetValue(nCol, xWrt)
|
|
|
|
| постоянный участник
|
Пост N: 6801
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.08.20 23:05. Заголовок: Ответ получил, xWrt ..
Ответ получил, xWrt := hb_CToT( System.Clipboard )
|
|
|
|
| постоянный участник
|
Пост N: 6994
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.07.21 21:07. Заголовок: Есть такие преобразо..
Есть такие преобразования поля: tRecno := SKLAD->TSZ // тип поля "=", RDD-TimeStamp дата+время+миллисекунды ? HB_TSTOSTR( tRecno ) , '"' + VALTYPE( HB_TSTOSTR( tRecno ) ) + '"' // "C" 2021-07-03 22:31:58.984 ? HB_TTOC( tRecno ) , '"' + VALTYPE( HB_TTOC( tRecno ) ) + '"' // "C" 03.07.21 22:31:58.984 ? HB_TTOD( tRecno ) , '"' + VALTYPE( HB_TTOD( tRecno ) ) + '"' // "D" 03.07.2021 ? HB_TTON( tRecno ) , '"' + VALTYPE( HB_TTON( tRecno ) ) + '"' // "N" 2459399.94 ? HB_TTOS( tRecno ) , '"' + VALTYPE( HB_TTOS( tRecno ) ) + '"' // "C" 20210703223158984 cDT := HB_TSTOSTR( tRecno ) ? HB_STRTOTS( cDT ) , '"' + VALTYPE( HB_STRTOTS( cDT ) ) + '"' // "T" 2021-07-03 22:31:58.699 ? HB_CToT(cDT) , '"' + VALTYPE( HB_CToT(cDT) ) + '"' // "T" 22:33:09.809 А как можно получить только время - 22:31:58.984 - строку ?
|
|
|
|
| Администратор
|
Пост N: 4038
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.07.21 11:59. Заголовок: А как можно получить..
цитата: | А как можно получить только время - 22:31:58.984 - строку ? |
| Так ответ же сидит прямо в вопросе. Через substr ? substr(hb_ttoc(tRecno), 10)
|
|
|
|
| |
Пост N: 1707
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.07.21 13:24. Заголовок: Andrey пишет: как м..
Andrey пишет: цитата: | как можно получить только время |
|
посмотреть параметры hb_ttoc() и выбрать нужный шаблон
|
|
|
|
| постоянный участник
|
Пост N: 3790
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.07.21 13:29. Заголовок: Andrey пишет А как м..
Andrey пишет цитата: | А как можно получить только время - 22:31:58.984 - строку ? |
| cTime := hb_TtoC( tDateTime ) cTime := Subs( cTime, At(" ", cTime) + 1 ) или cTime := Subs(HB_TSTOSTR( tDateTime ), 12 ) cTime := Subs(HB_TSTOSTR( tDateTime ), 12, 8 ) или cTm1 := cTm2 := "" tDtm := hb_DateTime() tUtc := hb_TSToUTC( tDtm ) HB_TTOD( tDtm, @cTm1, "hh:mm:ss" ) HB_TTOD( tUtc, @cTm2, "hh:mm:ss" )
|
|
|
|
|
| постоянный участник
|
Пост N: 6996
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.07.21 15:07. Заголовок: Pasha пишет: Так от..
Pasha пишет: цитата: | Так ответ же сидит прямо в вопросе. Через substr ? substr(hb_ttoc(tRecno), 10) |
| Ну это понятно, что можно через substr(), хотелось как правильней. SergKis пишет: цитата: | cTm1 := cTm2 := "" tDtm := hb_DateTime() tUtc := hb_TSToUTC( tDtm ) HB_TTOD( tDtm, @cTm1, "hh:mm:ss" ) HB_TTOD( tUtc, @cTm2, "hh:mm:ss" ) |
| Спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 6997
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.07.21 15:32. Заголовок: Что-то не идёт.... ..
Что-то не идёт.... cTm1 := cTm2 := "" ? 8, tDtm := HB_DATETIME() , '"' + VALTYPE( tDtm ) + '"' ? 9, tUtc := hb_TSToUTC( tDtm ) , '"' + VALTYPE( tUtc ) + '"' ? 10, HB_TTOD( tDtm, @cTm1, "hh:mm:ss" ) , '"' + VALTYPE( HB_TTOD( tDtm, @cTm1, "hh:mm:ss" ) ) + '"' ? 11, HB_TTOD( tUtc, @cTm2, "hh:mm:ss" ) , '"' + VALTYPE( HB_TTOD( tUtc, @cTm2, "hh:mm:ss" ) ) + '"' 8 2021-07-18 15:30:45.254 "T" 9 2021-07-18 12:30:45.254 "T" 10 18.07.2021 "D" 11 18.07.2021 "D"
|
|
|
|
| |
Пост N: 7414
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.07.21 15:55. Заголовок: Лови :sm12: hb_Reg..
Лови hb_Regex( "([\d+]{2}[:][\d+]{2}[:][\d+]{2}[.][\d+]{3})" , hb_ttoc(HB_DATETIME()),.f.)[1]
|
|
|
|
| постоянный участник
|
Пост N: 6998
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.07.21 16:09. Заголовок: Dima пишет: Лови ..
Dima пишет: Спасибо большое ! Но это уже извращение... Хочется понять, какие есть функции в Харборе для этих операций ?
|
|
|
|
| постоянный участник
|
Пост N: 3791
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.07.21 16:12. Заголовок: Andrey cTm1 := cT..
Andrey cTm1 := cTm2 := "" tDtm := hb_DateTime() tUtc := hb_TSToUTC( tDtm ) HB_TTOD( tDtm, @cTm1, "hh:mm:ss" ) HB_TTOD( tUtc, @cTm2, "hh:mm:ss" ) s_nHour := Val(cTm1) - Val(cTm2) ? procname() ? tDtm, cTm1 ? tUtc, cTm2 ? результат GMT2UTC 2021-07-18 16:09:11.557 16:09:11 2021-07-18 13:09:11.557 13:09:11
|
|
|
|
| постоянный участник
|
Пост N: 6999
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.07.21 16:15. Заголовок: SergKis пишет: резу..
SergKis пишет: Ступил... Но мне нужно время полностью 16:09:11.557 ! Как тогда указать формат ?
|
|
|
|
| постоянный участник
|
Пост N: 3792
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.07.21 16:35. Заголовок: Andrey используй ко..
Andrey используй короткое cTime := Subs(HB_TSTOSTR( tDateTime ), 12 ) формат hh:mm:ss.fff
|
|
|
|
| постоянный участник
|
Пост N: 7000
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.07.21 16:38. Заголовок: SergKis пишет: форм..
SergKis пишет: Спасибо БОЛЬШОЕ ! По инету искал и не нашёл, всякую фигню поиск предлагает.
|
|
|
|
| постоянный участник
|
Пост N: 7040
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.09.21 08:53. Заголовок: А как допустим выбра..
А как допустим выбрать все записи по определённой дате по базе, по полю типа "Т" ? Допустим есть база с полем SKLAD->TSZ, нужно выбрать все записи за текущую дату. dDate := DATE() cDate := ???? cFilter := "TSZ == " + cDate + ".AND. !DELETED()" SET FILTER TO &cFilter
|
|
|
Ответов - 158
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|