Автор | Сообщение |
|
| постоянный участник
|
Пост 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: 1429
Зарегистрирован: 20.02.11
|
|
Отправлено: 16.01.19 16:20. Заголовок: Pasha пишет: Так чт..
Pasha пишет: цитата: | Так что сами разработчики поддержку своих же типов данных должны были сделать. Другой вопрос, что не все типы данных поддерживает сам Ads |
| Так и я об этом же, нативный формат ADS поддерживает все эти типы и компонента доступа к ADS из Delphi соответственно их тоже поймет, но ... в НАТИВНОМ формате ( ADT ) В спецификации DBF от ADS эти поля не поддерживаются полностью ( ModTime и RowVersion не заявлены ) . Это не значит, что вывалит с ошибкой , но и не гарантирует правильное чтение данных . В случае с DBF нужно пробовать ... , а в случае с ADT уже можно работать. Точно сработает если конвертировать средствами харбур базу из DBF в ADT и рыть эту ADT из Delphi
|
|
|
|
| постоянный участник
|
Пост N: 6159
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.01.19 17:27. Заголовок: Haz пишет: Скорее в..
Haz пишет: цитата: | Скорее всего пусть забудет об этой идее , вопрос не в ADS а в том что RDD в дельфи скорее всего таких типов не знает в DBF |
| Haz пишет: цитата: | Если базы не на теробайты, то проще сделать конвертор DBF->ADT а к ADT дельфист легко цепанется через свой ADS |
| Т.е. совместный доступ сразу из Харбора и Дельфи не возможен ? А то Дельфист службу хочет ваять и передавать мои записи куда то через шлюз в другую прогу.
|
|
|
|
| постоянный участник
|
Пост N: 2174
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.01.19 20:01. Заголовок: Andrey пишет А то Де..
Andrey пишет цитата: | А то Дельфист службу хочет ваять и передавать мои записи куда то через шлюз в другую прогу. |
| Ты уверен, что надо напрямую пускать стороннего пользователя в данные клиента из ЧУЖОЙ проги ? Могут возникнуть нюансы. Игорь, по мне, верно предлагает решение export\import
|
|
|
|
| |
Пост N: 1431
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.01.19 20:47. Заголовок: Andrey пишет: Т.е...
Andrey пишет: цитата: | Т.е. совместный доступ сразу из Харбора и Дельфи не возможен |
| Возможен, при стандартных полях, ты же решил использовать расширенные. Отсюда и нюансы
|
|
|
|
| постоянный участник
|
Пост N: 6160
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.01.19 23:23. Заголовок: SergKis пишет: Ты у..
SergKis пишет: цитата: | Ты уверен, что надо напрямую пускать стороннего пользователя в данные клиента из ЧУЖОЙ проги ? Могут возникнуть нюансы. Игорь, по мне, верно предлагает решение export\import |
| Да я предлагал делать выгрузку из своей базы в обычный DBF. Отказался программист, он решил что сам сделает службу, подключаясь напрямую к базе. Там у руководства своё видение, пускай тогда пробует. Посмотрим что будет. Хороший полигон для проверки.
|
|
|
|
| постоянный участник
|
Пост N: 2175
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.01.19 23:43. Заголовок: Andrey пишет Посмотр..
Andrey пишет цитата: | Посмотрим что будет. Хороший полигон для проверки. |
| Если у тебя в базе не деньги, то ... пробовать, можно. Но как отследишь "чужую" модификацию, или слив данных на сторону ?
|
|
|
|
| постоянный участник
|
Пост N: 6161
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.01.19 18:02. Заголовок: SergKis пишет: Если..
SergKis пишет: цитата: | Если у тебя в базе не деньги, то ... пробовать, можно. |
| В том то и дело, что в базе приход оплаты абонентов. Я с себя всякую ответственность снимаю, захотело руководство и пусть у них голова болит...
|
|
|
|
| |
Пост N: 191
Зарегистрирован: 17.10.05
|
|
Отправлено: 20.01.19 13:05. Заголовок: Андрей, я когда-то ..
Андрей, я когда-то на Дельфи применял компонент VKDBF http://vlad-karpov.narod.ru/Components.html#VK%20DBF Он поддерживает 60 разширеных типов полей. CDX-индексы тоже. Глянь, может вашему дельфисту сгодится. Я одновременно работал с Делфи и Харбором с одной базой dbf-файлов.
|
|
|
|
| постоянный участник
|
Пост N: 6163
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.01.19 00:03. Заголовок: krutoff пишет: Я од..
krutoff пишет: цитата: | Я одновременно работал с Делфи и Харбором с одной базой dbf-файлов. |
| Спасибо БОЛЬШОЕ !
|
|
|
|
| постоянный участник
|
Пост N: 6164
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.01.19 15:44. Заголовок: Pasha пишет: Поле A..
Pasha пишет: цитата: | Поле AutoInc не предназначено для изменения. Оно заполняется автоматически при добавлении записи. При попытке что-либо записать в поле возникает ошибка EDBF_DATATYPE |
| Если есть такое поле в базе, то при переносе в новую базу значение таких полей автоматом переноситься из старой базы ? Сделал небольшой тест, вроде переносятся. Хочется точно знать.
|
|
|
|
| |
Пост N: 1432
Зарегистрирован: 20.02.11
|
|
Отправлено: 22.01.19 20:56. Заголовок: Andrey пишет: Хочет..
Andrey пишет: Не переносятся! Не должны. Заполняются автоматом в новой базе в порядке добавления записей. Переносить умеют только системы бекап/ресторе.
|
|
|
|
|
| постоянный участник
|
Пост N: 6165
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.01.19 11:48. Заголовок: Haz пишет: Не перен..
Haz пишет: цитата: | Не переносятся! Не должны. |
| Беру утилиту dbedit, открываю уже созданную базу, удаляю все записи AutoInc до 20-29 и после 32, т.е. делаю разрыв нумерации в базе. Потом делаю PACK. Создаю новую базу, добавляю из другой базы (меню: Операция, меню: Добавить из файла) и результат - ВСЕ записи в новой базе !
|
|
|
|
| |
Пост N: 1433
Зарегистрирован: 20.02.11
|
|
Отправлено: 23.01.19 12:45. Заголовок: Andrey пишет: ВСЕ ..
Andrey пишет: цитата: | ВСЕ записи в новой базе ! |
| Могу только поздравить! Видимо счетчик тикает только при dbAppend() Append From и Copy To его не изменяют. Даже не знаю это баг или фича
|
|
|
|
| |
Пост N: 44
Зарегистрирован: 22.01.14
|
|
Отправлено: 23.01.19 15:33. Заголовок: Andrey пишет: ВСЕ за..
Andrey пишет: цитата: | ВСЕ записи в новой базе ! |
| А если в тест добавить добавление нескольких новых записей? Как "ведет" себя поле AutoInc?
|
|
|
|
| постоянный участник
|
Пост N: 6166
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.01.19 16:14. Заголовок: Haz пишет: Append F..
Haz пишет: цитата: | Append From и Copy To его не изменяют. Даже не знаю это баг или фича |
| Нужно тогда у Паши спросить, как он в своей утилите DBEDIT копирует записи из другой базы ? ZAlex пишет: цитата: | А если в тест добавить добавление нескольких новых записей? Как "ведет" себя поле AutoInc? |
| Проверил. Добавляет по счётчику, т.е. если в базе был 34 номер, то следующая запись становиться 35.
|
|
|
|
| постоянный участник
|
Пост N: 2177
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.01.19 17:09. Заголовок: Andrey пишет Провери..
Andrey пишет цитата: | Проверил. Добавляет по счётчику |
| Небольшая правка Tsb_Basic\demo.prg показывает как работает AutoInc Скрытый текст
FUNCTION UseOpenBase() ... IF ( lDbfNo := ! File( cDbf+'.dbf' ) ) AAdd( aStr, { 'F0', '+', 4, 0 } ) AAdd( aStr, { 'F1', 'D', 8, 0 } ) AAdd( aStr, { 'F2', 'C', 60, 0 } ) AAdd( aStr, { 'F3', 'N', 10, 2 } ) AAdd( aStr, { 'F4', 'L', 1, 0 } ) dbCreate( cDbf, aStr ) ENDIF ... WHILE TEST->( RecCount() ) < 20 // 10 TEST->( dbAppend() ) TEST->F1 := Date() + n++ ... USE ( cDbf ) ALIAS "TEST" SHARED NEW OrdSetFocus('NN') GO TOP COPY TO ( '_1' ) FOR ','+hb_ntos(RecNo())+',' $ ',3,5,7,11,15,' GO TOP COPY TO ( '_2' ) FOR ','+hb_ntos(RecNo())+',' $ ',2,4,6,10,14,' GO TOP USE ( '_2' ) ALIAS T1 NEW GO TOP ? '_2.dbf', T1->( LastRec() ) WHILE ! EOF() ? RecNo(), T1->F0, T1->F1 SKIP ENDDO USE ? USE ( '_1' ) ALIAS T1 NEW GO TOP ? '_1.dbf', T1->( LastRec() ) WHILE ! EOF() ? RecNo(), T1->F0, T1->F1 SKIP ENDDO dbAppend() dbSkip(0) APPEND FROM ( '_2' ) dbGoBottom() dbAppend() GO TOP ? '_1.dbf+_2.dbf', T1->( LastRec() ) WHILE ! EOF() ? RecNo(), T1->F0, T1->F1, iif(empty(T1->F1), 'New', '' ) SKIP ENDDO USE SELECT TEST ... Результат: _2.dbf 5 1 2 24.01.2019 2 4 26.01.2019 3 6 28.01.2019 4 10 01.02.2019 5 14 05.02.2019 _1.dbf 5 1 3 25.01.2019 2 5 27.01.2019 3 7 29.01.2019 4 11 02.02.2019 5 15 06.02.2019 _1.dbf+_2.dbf 12 1 3 25.01.2019 '' 2 5 27.01.2019 '' 3 7 29.01.2019 '' 4 11 02.02.2019 '' 5 15 06.02.2019 '' 6 21 . . New 7 22 24.01.2019 '' 8 23 26.01.2019 '' 9 24 28.01.2019 '' 10 25 01.02.2019 '' 11 26 05.02.2019 '' 12 27 . . New
|
|
|
|
|
| |
Пост N: 1434
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.01.19 00:05. Заголовок: SergKis пишет: как ..
SergKis пишет: Тоесть. При Copy to сохраняется значение, в остальных переприсввивание по счётчику
|
|
|
|
| |
Пост N: 6999
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.01.19 00:28. Заголовок: Andrey пишет: Нужно..
|
|
|
|
| постоянный участник
|
Пост N: 2178
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.01.19 01:22. Заголовок: Haz пишет Тоесть. Пр..
Haz пишет цитата: | Тоесть. При Copy to сохраняется значение, в остальных переприсввивание по счётчику |
| Да, при copy to сохраняется значение, при dbcreate счетчик с 0. dbappend, append from увеличивают счетчик в заголовке dbf. dbdelete + pack меняют только lastrec()
|
|
|
|
| постоянный участник
|
Пост N: 6731
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.06.20 12:09. Заголовок: Всем привет ! Вот на..
|
|
|
Ответов - 158
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|