|
Выгрузка в формат DBF типы данных | ☑ | ||
---|---|---|---|---|
0
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
|
справочник нужно выгружать по ключевым полям - это если только для поиска, для создания - все поля в отдельные колонки
|
|||
3
falselight
31.07.18
✎
12:27
|
(2) Ну я так и делаю в (0). В отдельные колонки.
Но в колонках задается тип. "S" строка. "N" число. Так ведь? |
|||
4
Lexey_
31.07.18
✎
12:37
|
(3) СП читал уже?
|
|||
5
falselight
31.07.18
✎
12:38
|
Читал, понял. Делаю.
|
|||
6
Garykom
гуру
31.07.18
✎
12:50
|
Не забудь уточнить кодировку DBF - чтобы потом не было мучительно больно и что делать с ограничениями на длину строковых полей ))
|
|||
7
1Сергей
31.07.18
✎
12:54
|
(6) +
Ещё есть ограничение на имя файла |
|||
8
stix2010
31.07.18
✎
13:55
|
Выгружай в xml будет легче
|
|||
9
falselight
31.07.18
✎
18:43
|
(8) Задача выгрузить именно в .dbf.
(7) А какое подскажите? Пока у меня пишет ошибку, длина имени файла превысила 8 символов. |
|||
10
Cool_Profi
31.07.18
✎
19:11
|
(9) ты не поверишь - 8 символов....
|
|||
11
Garykom
гуру
31.07.18
✎
19:21
|
(10) + 3 символа расширения
|
|||
12
falselight
01.08.18
✎
06:30
|
(10)(11) Мда, прикольно. Это я и подозревал.
Странно от чего такой геморизм???? |
|||
13
Скиурус
01.08.18
✎
06:42
|
Такой геморизм от того, что формату DBF больше лет чем тебе.
|
|||
14
falselight
01.08.18
✎
06:48
|
(13) Понял. Ну задача делать именно в нем.
По этому зачем то это нужно видимо. Подскажите по такому вопросу. В Номенклатуре, есть реквизит описание. Строка 1024 символа. Преобразую к 200. БД.Cnote = СРЕД( Выборка.Описание,1, 200) ; Все равно в выгруженном поле, что то искареженное. Как это можно выгружать? Какие тут ограничения? |
|||
15
Cool_Profi
01.08.18
✎
06:55
|
(14) Во первых лучше делать ЛЕВ, а во-вторых кодировку файла проверь при создании
|
|||
16
falselight
01.08.18
✎
07:18
|
(15) А я её не задавал. Да помню говорили что нужно.
Сейчас посмотрю. |
|||
17
falselight
01.08.18
✎
07:24
|
Сделал так БД.Cnote = ЛЕВ( Выборка.Описание, 200) ;
Но там все равно строка получилась очень обрезанная. Все не уместится да? Кодировку поставил БД.Кодировка = КодировкаXBase.OEM; |
|||
18
Cool_Profi
01.08.18
✎
07:34
|
(17) БД.Поля.Добавить("Cnote", "S",30);
А ты туда хочешь 200 запихнуть. Это как в один гранёный стакан налить 2 по 200... |
|||
19
falselight
01.08.18
✎
07:47
|
Ну так написать многое могут же там.
Что возможно максимально? |
|||
20
Мимохожий Однако
01.08.18
✎
07:52
|
(19) В СП что написано?
|
|||
21
Salimbek
01.08.18
✎
07:53
|
(19) Тебе тонко намекают в (18), что ты задал это поле длиной в 30 символов, и от того, что ты пытаешься туда строку длиной в 200 засунуть, все равно больше 30 туда не влезет. Чтобы влезло 200 - надо сначала сделать так: БД.Поля.Добавить("Cnote", "S",200);
|
|||
22
falselight
01.08.18
✎
07:54
|
(21) (18) А понял!
Попробую. Спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |