Автор | Сообщение |
|
| постоянный участник
|
Пост 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: 3135
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.05.13 13:25. Заголовок: Andrey пишет: Подск..
Andrey пишет: цитата: | Подскажите пожалуйста, а с какого времени существуют новые типы данных в базах Харбор/хХарбор ? |
| c 2009 вроде
|
|
|
|
| Администратор
|
Пост N: 2869
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.05.13 09:07. Заголовок: Andrey пишет: Неисп..
Andrey пишет: цитата: | Неисправимая ошибка 9006: hb_xgrab не может распределить память |
| Это ошибка выделения памяти. Здесь действуют несколько ограничений: 1. Максимальный размер символьной переменной 2. Максимальный размер мемо-поля Какие там ограничения - 2Г или больше - сразу не скажу 3. Ограничение на выделение памяти (размер физической или виртуальной памяти). В мемо-поле данные записываются целиком, поэтому и считать файл в память надо целиком. Но это плохое решение - загонять гигабайты в мемо-поле. Оно все-таки для этого не предназначено.
|
|
|
|
| постоянный участник
|
Пост N: 2830
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.05.13 15:38. Заголовок: Pasha пишет: Но это..
Pasha пишет: цитата: | Но это плохое решение - загонять гигабайты в мемо-поле. Оно все-таки для этого не предназначено. |
| Согласен. Просто протестировал по максиму. Думаю 1-5 Мб размер файла картинки будет нормально для базы ? И какое поле базы лучше использовать для картинок (jpg, bmp...) ? M Memo P Picture B Blob V VarField И для чего нужно поле типа "V" (если уже есть M, P, B) ?
|
|
|
|
| Администратор
|
Пост N: 2870
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.05.13 15:50. Заголовок: Andrey пишет: Думаю..
Andrey пишет: цитата: | Думаю 1-5 Мб размер файла картинки будет нормально для базы ? |
| Нормально цитата: | И какое поле базы лучше использовать для картинок (jpg, bmp...) ? M Memo P Picture B Blob V VarField |
| Если нет перекодировки кодовых страниц, то все равно: M, P или B Если есть - то M использовать нельзя. цитата: | И для чего нужно поле типа "V" (если уже есть M, P, B) ? |
| V - это другой тип поля, более сложный. О нем лучше почитать в ng по six3. Там даже есть отдельный раздел: VarField "V" Field Types
|
|
|
|
| постоянный участник
|
Пост N: 3093
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.11.13 11:05. Заголовок: Подскажите пожалуйст..
Подскажите пожалуйста, как можно переделать свой dbf под новое поле: + AutoInc (Auto increment). Дело в том что у меня есть в базе поле ID записи, которое я веду сам. Хочу сделать новое ID2, но с сохранением значений ID (база чистилась и ID идут не по порядку RECNO() ). Как это сделать ?
|
|
|
|
| постоянный участник
|
Пост N: 3168
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.13 15:04. Заголовок: Поставил в базу поле..
Поставил в базу поле ID тип + AutoInc 4 Auto increment. Теперь при добавлении записи получаю ошибку: Error DBFCDX/1020 Ошибка типа данных: ID Код такой: aFieldArray := { } GetFields( aFieldArray ) APPEND BLANK ALERT( STR(FIELD->ID)+";"+VALTYPE(FIELD->ID) ) FOR nI := 1 TO FCOUNT() FIELDPUT( nI, aFieldArray[ nI ] ) NEXT Причем VALTYPE(FIELD->ID) возвращает N - Как получить правильный тип поля базы ? Как сделать правильно ?
|
|
|
|
| Администратор
|
Пост N: 3091
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.12.13 15:33. Заголовок: Поле AutoInc не пред..
Поле AutoInc не предназначено для изменения. Оно заполняется автоматически при добавлении записи. При попытке что-либо записать в поле возникает ошибка EDBF_DATATYPE
|
|
|
|
| постоянный участник
|
Пост N: 3169
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.13 18:33. Заголовок: Pasha пишет: Поле A..
Pasha пишет: цитата: | Поле AutoInc не предназначено для изменения. |
| А как тогда получить, что это тип поля AutoInc ? VALTYPE(FIELD->ID) возвращает N !
|
|
|
|
| |
Пост N: 3756
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.12.13 19:22. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как тогда получить, что это тип поля AutoInc ? |
| Пробни HB_FIELDTYPE()
|
|
|
|
| постоянный участник
|
Пост N: 419
Зарегистрирован: 13.10.05
|
|
Отправлено: 15.12.13 19:52. Заголовок: А как объявить поле..
А как объявить поле Auto increment ? Только программно ? Во вьюверах ничего такого нет.
|
|
|
|
| |
Пост N: 3757
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.12.13 20:11. Заголовок: Vlad04 пишет: А как..
Vlad04 пишет: цитата: | А как объявить поле Auto increment ? |
| вероятно тип поля "+" типа так dbcreate("test",{{"tst","n",1,0},{"incrtest","+",3,0}},,.t.)
|
|
|
|
|
| постоянный участник
|
Пост N: 3170
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.13 20:56. Заголовок: Vlad04 пишет: Тольк..
Vlad04 пишет: цитата: | Только программно ? Во вьюверах ничего такого нет. |
| Пашина утилита dbedit.exe - позволяет делать это. Да и многое другое !!!
|
|
|
|
| постоянный участник
|
Пост N: 3171
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.13 21:02. Заголовок: Dima пишет: Пробни ..
Dima пишет: Возвращает пустую строчку. У меня хХарбор 1.2.3
|
|
|
|
| |
Пост N: 3758
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.12.13 21:11. Заголовок: Andrey пишет: Возвр..
Andrey пишет: цитата: | Возвращает пустую строчку |
| Нет у меня хХарбор ;) Попробуй для теста Harbour , он же есть у тебя. Хотя кто знает может в хХарбор нужно юзать FIELDTYPE() , не проверял.
|
|
|
|
| |
Пост N: 3759
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.12.13 21:14. Заголовок: Andrey пишет: Возвр..
Andrey пишет: цитата: | Возвращает пустую строчку. |
| Hb_fieldtype(номер поля) // норм работает
|
|
|
|
| постоянный участник
|
Пост N: 3172
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.12.13 21:23. Заголовок: Dima пишет: Hb_fiel..
Dima пишет: цитата: | Hb_fieldtype(номер поля) // норм работает |
| Да - работает ! Описание в Хелпе по хХарбору нет, а я поставил имя поля.... Из-за этого и не сработало раньше. Спасибо БОЛЬШОЕ Дима !
|
|
|
|
| |
Пост N: 104
Зарегистрирован: 03.12.08
|
|
Отправлено: 16.12.13 20:31. Заголовок: Andrey вроде Вы испо..
Andrey вроде Вы используете DBF для хранения картинок ? У меня задача такая-же . Нужно помимо прочих стоково/числовых значений ещё и фото товара . Посоветуйте как лучше сделать ? На сегодняшний день я картинки держу в MEMO ... и перед просмотром записываю в файл и соответсвенно показ . Чую что есть лучшее решение .... HARBOUR + MiniGui
|
|
|
|
| |
Пост N: 3761
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.12.13 20:40. Заголовок: Softlog86 Зачем так..
Softlog86 Зачем так усложнять ? Храните картинки как они есть в отдельной папке.
|
|
|
|
| |
Пост N: 383
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.12.13 22:02. Заголовок: Dima пишет: Softlog..
Dima пишет: цитата: | Softlog86 Зачем так усложнять ? Храните картинки как они есть в отдельной папке. |
| +1 Если артикулов много - значит много будет картинок. Зачем нагружать систему, сваливая все в одну кучу, если можно удобно и комфортно хранить jpg файлы в отдельном каталоге ? Добавлю, что картинки (в отличие от самой БД) в большинстве случаев меняются гораздо реже, поэтому - какой смысл регулярно бекапить статичную по сути информацию ?
|
|
|
|
| постоянный участник
|
Пост N: 3174
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.12.13 23:12. Заголовок: Softlog86 пишет: Н..
Softlog86 пишет: цитата: | На сегодняшний день я картинки держу в MEMO ... и перед просмотром записываю в файл и соответсвенно показ . Чую что есть лучшее решение .... HARBOUR + MiniGui |
| 1) Надо не забыть, что и в HARBOUR'e можно показывать картинки в терминале GTWVT. Смотрите примеры терминала GTWVT (он сейчас по другому называется GTWVG) или мой пример с фонтами (я его здесь на форуме выкладывал). 2) Можно сделать внешний показ картинки на МиниГуи - см. пример библиотеки - сохранения и показ графических файлов в базе формата DBFCDX в папке samples\Basic\Image2Dbf 3) Можно базу и показ товара сразу сделать на МиниГуи. Типа такого: Но это сложно. Я пока сам разбираюсь. Все зависит от конкретной задачи. Какие картинки нужно показывать, как часто их показывать и т.д. Выбор ваш. Если большие картинк, то может и не нужно их в базе хранить. Не знаю. Я раньше doc файлы хранил в базе, потом отказался, потому что база пухнет и копии файлов хранить неудобно.
|
|
|
Ответов - 158
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|