|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
Есть в программе Id код записи вот этот: Нx€Ѕд)џJҐMЕЊ cM4 В таблички в разные он лезет Replacом нормально, а вот в одну лезет вот так: Íx__ä)_JÃMÅ_ cM4 и естественно это уже другой код. Он как-то преобразуется в момент записи в эту таблицу. Записывая даже в ручном режиме (Replace) во всякие разные lheubt таблицы - все нормально. Проблема именно с одной табличкой. Поле переименовывал. Добавлял в другое, новое - все едино - беда именно с табличкой. Что с табличкой не так? Куда копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 10:21 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
CP таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 10:26 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
MaestroEvНx€Ѕд)џJҐMЕЊ cM4 Жесть. попробуй тип поля Charaster (binary) поставить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 10:28 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
MaestroEv, а пробовали создать клона таблицы(желательно ручками)? Если получиться записывать все по "нормальному", то проблема с самой таблицей, если нет то с кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 10:31 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
Блин. Вот я.. не ожидал. Там и правда 866. Спасибо. Единственная табличка из "прошлой жизни". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 10:34 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
MaestroEv, Код записи = строковые данные....:-( Голову бы разработчику оторвать... MaestroEvВ таблички в разные он лезет Replacом нормально, а вот в одну лезет вот так: Кто куда лезет? :-))) По теме... Что-то мне кажется, что тут проблема с кодировкой.... Копай в эту сторону... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 10:39 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
Да с кодировкой.. спасибо. Строковые записи - код записи - голову оторвать.. А как иначе? Нумерик? Чтобы всегда рос? А если таблицам по 15 лет? При вводе новой записи искать дырки? На это уйдет куча ресурсов если таблиц более 100... А если код уникален на 10 серверах.. то составной индекс? Че-то я пока с головой останусь.. А вот тем кто использует нумерик в ID .. тем стоит задуматься. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 07:34 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
MaestroEv Че-то я пока с головой останусь.. А вот тем кто использует нумерик в ID .. тем стоит задуматься. :) Насколько я помню, в DBF таблице может быть максимум 1 миллиард записей, почему Вы решили, что нумерика для этого не хватит? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 08:38 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
MaestroEvСтроковые записи - код записи - голову оторвать.. А как иначе? Нумерик? Чтобы всегда рос? А если таблицам по 15 лет? При вводе новой записи искать дырки? На это уйдет куча ресурсов если таблиц более 100... А если код уникален на 10 серверах.. то составной индекс? Все зависит от задачи. У тебя походу GUID в строке хранится. Он тоже 16 байт. Просто для читабельности его при выводе в 16-ричный вид преобразовывают. В фоксе под него нет специального типа, вот и хранят в строке, только такие строки надо как Binary хранить, чтоб кодовые страницы не гадили и индексы правильно работали при collate "russian" Ну и про 15 лет и дырки ты загнул. Скорее всего разработчики просто решили использовать GUID чтобы не заморачиваться с написаним самопальных счетчиков и распределением диапазонов ID-шников по разным базам. MaestroEvЧе-то я пока с головой останусь.. А вот тем кто использует нумерик в ID .. тем стоит задуматься. :) нумерик не советую (он как строка хранится), а вот Integer - да. причем везде где только можно. У GUIDа один плюс - глобальная уникальность, зато есть серьезный минус - размер. Сравни или 16 байт или 4 байта Integer, который позволяет сгенерить 2 миллиарда значений, которых в 99% случаев хватит на 100 лет работы. А 4 байта против 16 это: 1. Размер базы меньше. Посчитай сколько там ID-шников разных хранится. 2. Сравнение быстрее, т.е. операции индексирования и поиска Я как-то переболел GUIDами в свое время, тоже сначала подумал какое замечательное супер-изобретение, а потом проводил тесты, взял базу не маленькую и заменил все поля Integer на GUID: размер вырос ощутимо, время тех же выборок выросло в разы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 09:23 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
Я конечно не корифей, поэтому лучше сослаться на классиков, например Базиян, где он писал, что поле Numeric(это у него совет, а не руководство), надо применять, где будут операции над числами, и приведёно код для получения id в символьном виде.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 09:27 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
Мимоходом555Насколько я помню, в DBF таблице может быть максимум 1 миллиард записей Точнее ограничение DBF - 2 Гб на файл. В каждой записи 1 байт под пометку удаления, остальное данные. Поэтому 1 миллиард записей - если запись из одного поля в 1 байт. Что-то осмысленное в такую запись не сохранишь, поэтому в реальные таблицы еще меньше записей влазит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 09:34 |
|
Беда таблички - заменяется ID командой Replace, Gather.
|
|||
---|---|---|---|
#18+
q1w1e1Я конечно не корифей, поэтому лучше сослаться на классиков, например Базиян, где он писал, что поле Numeric(это у него совет, а не руководство), надо применять, где будут операции над числами, и приведёно код для получения id в символьном виде.. Возможно это у него со времен FPD отложилось. Тогда не было в фоксе типа Integer. Было два варианта нумерик и строка. нумерик - хранится как строка из цифр, т.е. N(5) - занимает 5 байт в файле. Поэтому используя для генерации ID буквы и цифры в строке требуется меньше места. Например если использовать цифры и английские буквы то один разряд будет 62 (10 + 26 + 26) комбинации против 10-ти в нумерик. например 4 байта в такой строке дают 62^4 = 14'776'336 значений, т.е. строка 4 байта содержит чуть больше полезной информации чем N(7) Лично я в FPD тоже использовал строки для IDшников. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2012, 09:46 |
|
|
start [/forum/topic.php?fid=41&msg=38054203&tid=1583302]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 153ms |
0 / 0 |