Вход | Регистрация



Выгрузка в формат DBF типы данных

Выгрузка в формат DBF типы данных
Я
   falselight
 
31.07.18 - 11:50
Создаю объект XBASE для выгрузки справочника номенклатура.
Подскажите пожалуйста. В типах полей может быть только строка или число?
Так как в выгрузке есть и тип справочник и число и дата и строка.


    БД = Новый XBase;
    БД.Поля.Добавить("Name",      "S",30);
    БД.Поля.Добавить("Maker",     "S",30);
    БД.Поля.Добавить("Country",   "S",30);
    БД.Поля.Добавить("Fas",       "N",6,0) 
    БД.Поля.Добавить("Price",     "N",6,0) 
    БД.Поля.Добавить("Price_min", "N",6,0)  
    БД.Поля.Добавить("Price_max", "N",6,0) 
    БД.Поля.Добавить("Kol_vo",    "N",6,0) 
    БД.Поля.Добавить("Date_god",  "N",6,0) 
    БД.Поля.Добавить("Pr_ree",    "N",6,0) 
    БД.Поля.Добавить("Kod",       "N",6,0) 
    БД.Поля.Добавить("Seria",     "N",6,0) 
    БД.Поля.Добавить("Zakaz_min", "N",6,0) 
    БД.Поля.Добавить("Zakaz_krat","S",30); 
    БД.Поля.Добавить("Ean13",     "S",30);
    БД.Поля.Добавить("Cnote",     "S",30);
 
 
   1Сергей
 
1 - 31.07.18 - 11:51
Дата может быть. открой СП
   Вафель
 
2 - 31.07.18 - 11:53
справочник нужно выгружать по ключевым полям - это если только для поиска, для создания - все поля в отдельные колонки
   falselight
 
3 - 31.07.18 - 12:27
(2) Ну я так и делаю в (0). В отдельные колонки.
Но в колонках задается тип.
"S" строка.
"N" число.

Так ведь?
   Lexey_
 
4 - 31.07.18 - 12:37
(3) СП читал уже?
   falselight
 
5 - 31.07.18 - 12:38
Читал, понял. Делаю.
   Garykom
 
6 - 31.07.18 - 12:50
Не забудь уточнить кодировку DBF - чтобы потом не было мучительно больно и что делать с ограничениями на длину строковых полей ))
   1Сергей
 
7 - 31.07.18 - 12:54
(6) +
Ещё есть ограничение на имя файла
   stix2010
 
8 - 31.07.18 - 13:55
Выгружай в xml будет легче
   falselight
 
9 - 31.07.18 - 18:43
(8) Задача выгрузить именно в .dbf.

(7) А какое подскажите? Пока у меня пишет ошибку, длина имени файла превысила 8 символов.
   Cool_Profi
 
10 - 31.07.18 - 19:11
(9) ты не поверишь - 8 символов....
 
 Рекламное место пустует
   Garykom
 
11 - 31.07.18 - 19:21
(10) + 3 символа расширения
   falselight
 
12 - 01.08.18 - 06:30
(10)(11) Мда, прикольно. Это я и подозревал.
Странно от чего такой геморизм????
   Скиурус
 
13 - 01.08.18 - 06:42
Такой геморизм от того, что формату DBF больше лет чем тебе.
   falselight
 
14 - 01.08.18 - 06:48
(13) Понял. Ну задача делать именно в нем.
По этому зачем то это нужно видимо.

Подскажите по такому вопросу. В Номенклатуре, есть реквизит
описание. Строка 1024 символа.
Преобразую к 200.
БД.Cnote      = СРЕД( Выборка.Описание,1, 200) ;

Все равно в выгруженном поле, что то искареженное.
Как это можно выгружать? Какие тут ограничения?
   Cool_Profi
 
15 - 01.08.18 - 06:55
(14) Во первых лучше делать ЛЕВ, а во-вторых кодировку файла проверь при создании
   falselight
 
16 - 01.08.18 - 07:18
(15) А я её не задавал. Да помню говорили что нужно.
Сейчас посмотрю.
   falselight
 
17 - 01.08.18 - 07:24
Сделал так БД.Cnote      = ЛЕВ( Выборка.Описание, 200) ;

Но там все равно строка получилась очень обрезанная.
Все не уместится да?
Кодировку поставил БД.Кодировка = КодировкаXBase.OEM;
   Cool_Profi
 
18 - 01.08.18 - 07:34
(17)  БД.Поля.Добавить("Cnote",     "S",30);
А ты туда хочешь 200 запихнуть. Это как в один гранёный стакан налить 2 по 200...
   falselight
 
19 - 01.08.18 - 07:47
Ну так написать многое могут же там.
Что возможно максимально?
   МимохожийОднако
 
20 - 01.08.18 - 07:52
(19) В СП что написано?
   Salimbek
 
21 - 01.08.18 - 07:53
(19) Тебе тонко намекают в (18), что ты задал это поле длиной в 30 символов, и от того, что ты пытаешься туда строку длиной в 200 засунуть, все равно больше 30 туда не влезет. Чтобы влезло 200 - надо сначала сделать так: БД.Поля.Добавить("Cnote",     "S",200);
   falselight
 
22 - 01.08.18 - 07:54
(21) (18) А понял!
Попробую.
Спасибо!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует