|
|
|
Максимальный размер поля DBF | ☑ | ||
|---|---|---|---|---|
|
0
Молодой 1Снег
03.09.08
✎
09:04
|
Делаю выгрузку документа через DBF, наткнулся на ограничение размера поля, больше 44 символов не влезает.
Нужно выгрузить строковый реквизит с длиной 300. |
|||
|
1
Sergey_KR
03.09.08
✎
09:36
|
вот что я поню про ДБФ
Максимальное число записей в файле базы данных 1 миллиард Максимальное число символов в записи 4000 Максимальное число полей в записи 255 Максимальное число одновременно открытых баз данных 25 Максимальное число символов в поле базы данных 254 Максимальное число символов в индексном ключе (.IDX) 100 Максимальное число символов в индексном ключе (.CDX) 254 Максимальное число открытых индексных файлов в базе данных без ограничения Максимальное число открытых индексов во всех рабочих областях без ограничения Характеристики полей Максимальный размер символьных полей 254 Максимальный размер числовых (и с плавающей точкой) полей 20 Максимальное число символов в названиях полей 10 Точность цифр при числовых вычислениях 16 |
|||
|
2
vde69
03.09.08
✎
09:37
|
возьми драйвер XBase там этого нету
|
|||
|
3
Молодой 1Снег
03.09.08
✎
09:43
|
(1) значит в моем случае ограничение 1Ска накладывает.
*взял драйвер XBase, крутит вертит, чешет затылок* |
|||
|
4
Sergey_KR
03.09.08
✎
09:50
|
Посмотри какого типа у тебя поле в ДБФ. Может у тебя там ограничения стоят. А так размерность строкового поля 254 символа
|
|||
|
5
vde69
03.09.08
✎
09:53
|
(3) а чего чесать? 1с-ка им нормально юзаеться, со всеми длинными строками.
вот патч для него (кодировки): [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase] "DataCodePage"="ANSI" "BDE"=dword:00000002 |
|||
|
6
Молодой 1Снег
03.09.08
✎
09:58
|
Вот небольшой фрагмент кода. Как здесь использовать этот драйвер?
Х=Новый xBase; Х.поля.Добавить("HISTORY","S",300); Х.Кодировка = КодировкаXBase.OEM; Х.СоздатьФайл("D:\TTN.dbf"); Х.АвтоСохранение = Истина; Х.добавить(); Х.HISTORY = Док.История; Х.ЗакрытьФайл(); |
|||
|
7
Молодой 1Снег
03.09.08
✎
10:14
|
Странно, если делать так:
Х.поля.Добавить("HISTORY","S",300); то создается поле длиной 44 символа. А если так: Х.поля.Добавить("HISTORY","S",254); то длина поля будет 254 символа о_О |
|||
|
8
vde69
03.09.08
✎
10:15
|
(6)
вероятнее всего у тебя в Док.История - не тип строка (а например многострочный он) Тип: Строка. Тип создаваемого поля: "N" - число, "S" - строка, "D" - дата, "L" - булево, "F" - аналогично "N" - число, "M" - мемополе (не поддерживается). тебе надо использовать именно "мемо" поле а оно не реализовано в языке, по этому или преобразуй Док.История в НОРМАЛЬНУЮ строку, или юзай xBase не встроенный а через ADO |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |