Автор | Сообщение |
|
| постоянный участник
|
Пост N: 5086
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.09.16 17:52. Заголовок: [?] Создаю индекс по типу поля "="
Создаю индекс по новому типу поля "=" - TimeStamp дата+время+миллисекунды DbSeek() почему то не хочет с ним работать ? Или нельзя напрямую работать с такими типами ? В базе сделал поле {"TS" ,"=", 8, 0 } Вот мой код: SELECT DBF2TEST INDEX ON "TS" TAG TS TO ( cFileIndex2 ) tStatTimeStamp := HB_DATETIME() .... SELECT DBF2TEST OrdSetFocus( "TS" ) ? tStatTimeStamp, RECNO(), DBF2TEST->TS, EOF() dbSeek(tStatTimeStamp, .T. ) // Set softseek on ? "dbSeek(, .T. )=", RECNO(), EOF(), FOUND() DO WHILE !EOF() IF DBF2TEST->TS >= tStatTimeStamp AADD( aRec, RECNO() ) ENDIF dbSkip(1) ENDDO Массив aRec не создаётся... Хотя вывожу в лог: StatTimeStamp := 2016-09-06 16:38:43.547 Первое поле в базе = 2016-09-06 16:38:58.824 Что не так делаю ? Harbour последний, из MiniGUI...
|
|
|
Ответов - 8
[только новые]
|
|
|
| постоянный участник
|
Пост N: 5087
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.09.16 18:45. Заголовок: Вот ещё сделал прове..
Вот ещё сделал проверку. Проверяю индекс - 2 OrdName: TS OrdKey: "TS" - всё нормально ! tStatTimeStamp = 18:46:17.848, RECNO()=1, DBF2TEST->TS = 2016-09-06 18:46:29.244, EOF()=.F. делаем dbSeek(tStatTimeStamp, .T. ), результат: RECNO()=1001, EOF()=.T., FOUND()=.F.
|
|
|
|
| постоянный участник
|
Пост N: 5088
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.09.16 19:26. Заголовок: А как переменную HB_..
А как переменную HB_DATETIME() преобразовать в число ? Наверное dbSeek(tStatTimeStamp, .T. ) не поддерживает этот тип переменных, я тогда сделаю числовой индекс.
|
|
|
|
| постоянный участник
|
Пост N: 1290
Зарегистрирован: 09.10.06
|
|
Отправлено: 07.09.16 23:07. Заголовок: Andrey пишет: INDEX..
Andrey пишет: цитата: | INDEX ON "TS" TAG TS TO ( cFileIndex2 ) |
| INDEX ON TS TAG TS TO ( cFileIndex2 )
|
|
|
|
| постоянный участник
|
Пост N: 5089
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.16 00:12. Заголовок: Петр пишет: INDEX O..
Петр пишет: цитата: | INDEX ON TS TAG TS TO ( cFileIndex2 ) |
| Как обычно... на простом месте Спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 5090
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.16 12:51. Заголовок: Выдаёт ошибку при сб..
Выдаёт ошибку при сборке: Harbour 3.2.0dev (r1607181832) Copyright (c) 1999-2016, http://harbour-project.org/ Form_Dbf.prg(560) Warning W0001 Ambiguous reference 'XID' Form_Dbf.prg(561) Warning W0001 Ambiguous reference 'TS' No code generated. hbmk2[dbf_to_PostgreSQL]: Error: Running Harbour compiler (embedded). 1 Текст программы на этих строчках: INDEX ON XID TAG XID TO ( cFileIndex1 ) ADDITIVE INDEX ON TS TAG TS TO ( cFileIndex2 ) ADDITIVE Я собираю программу с ключом -prgflag=-w2 -es2 Можно конечно убрать этот ключ и так собрать, ну уж больно удобен этот ключ, ошибки сразу при сборке показывает по переменным. Какой под этот ключ сборки будет синтаксис INDEX ON .... ? Макроподстановку не предлагать. Вот так тоже не прокатывает: INDEX ON FIELD->XID TAG XID TO ( cFileIndex1 ) ADDITIVE INDEX ON FIELD->TS TAG TS TO ( cFileIndex2 ) ADDITIVE Индекс не создаётся ! МиниГуи вместо FIELD-> делает свою макроподстановку. На хХарборе у меня так везде работает.
|
|
|
|
| постоянный участник
|
Пост N: 1291
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.09.16 14:42. Заголовок: Andrey пишет: INDEX..
Andrey пишет: цитата: | INDEX ON FIELD->XID TAG XID TO ( cFileIndex1 ) ADDITIVE INDEX ON FIELD->TS TAG TS TO ( cFileIndex2 ) ADDITIVE |
| Можно попробовать так INDEX ON _FIELD->XID TAG XID TO ( cFileIndex1 ) ADDITIVE INDEX ON _FIELD->TS TAG TS TO ( cFileIndex2 ) ADDITIVE Можно так #pragma ENABLEWARNINGS=Off INDEX ON XID TAG XID TO ( cFileIndex1 ) ADDITIVE INDEX ON TS TAG TS TO ( cFileIndex2 ) ADDITIVE #pragma ENABLEWARNINGS=On Можно так #pragma WARNINGLEVEL=1 INDEX ON XID TAG XID TO ( cFileIndex1 ) ADDITIVE INDEX ON TS TAG TS TO ( cFileIndex2 ) ADDITIVE #pragma WARNINGLEVEL=3 цитата: | This is the list of the supported commands and switches: * Command Switch ----------------------------------------------- * AUTOMEMVAR =<On/Off> -a<+/-> * DEBUGINFO =<On/Off> -b<+/-> * DYNAMICMEMVAR =<On/Off> -v<+/-> * ENABLEWARNINGS =<On/Off> -w<+/-> * ESCAPEDSTRINGS =<On/Off> * EXITSEVERITY =<nLevel> -es<nLevel> * LINENUMBER =<On/Off> -l<+/-> * NOSTARTPROC =<nLevel> -n<nLevel> (read-only) * PREPROCESSING =<On/Off> -p<+/-> * SHORTCUT =<On/Off> -z<+/-> * TEXTHIDDEN =<On/Off> * TRACE =<On/Off> -p+ * WARNINGLEVEL =<nLevel> -w<nLevel> |
| P.S. Задавать подобный вопрос нужно было в отдельной теме
|
|
|
|
| |
Пост N: 6003
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.09.16 14:51. Заголовок: Петр пишет: P.S. За..
Петр пишет: цитата: | P.S. Задавать подобный вопрос нужно было в отдельной теме |
| двинул
|
|
|
|
| постоянный участник
|
Пост N: 5092
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.09.16 15:15. Заголовок: Петр пишет: Можно т..
Петр пишет: Спасибо БОЛЬШОЕ !
|
|
|
|