Имя: Пароль:
1C
 
Максимальный размер поля 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
2 + 2 = 3.9999999999999999999999999999999...