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

Выгрузка в формат 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) А понял!
Попробую.
Спасибо!


Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует