cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход

 
 
  ГлавнаяСправкаПоискВход  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
Структура банка из Excel файла и длина поля (Прочитано 1 144 раз)
Юзер99335588
Опытный пользователь
***
Вне Форума



Сообщений: 92
Структура банка из Excel файла и длина поля
02.12.2021 :: 18:22:10
 
Здравствуйте!

Пытаюсь создать банк данных из файла Excel (xls) Файл состоит из 10 колонок , там везде текст, местами 400+ символов, а одна колонка - более 1000 символов

Проектирование -> Структуры банка данных -> Импорт из файла -> выбираю свой файл xls -> тип драйвера MicrosoftJet -> Excel 8.0 -> копирую структуру и почему-то все колонки ограничиваются длиной 255 символов (кроме той, которая в исходном файле более 1000), ей система делает длину 65534 символа

Почему-то мне кажется, что проблема в моём исходном файле Excel, но хочу у знатоков уточнить: в чём дело?

Спасибо!
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Структура банка из Excel файла и длина поля
Ответ #1 - 02.12.2021 :: 18:52:33
 
Известная проблема
тут
Наверх
 
 
IP записан
 
Юзер99335588
Опытный пользователь
***
Вне Форума



Сообщений: 92
Re: Структура банка из Excel файла и длина поля
Ответ #2 - 02.12.2021 :: 18:56:56
 
Спасибо большое!

А почему одно поле нормальной длинны - 65к символов ?

По ссылку у автора все поля 255, а у не все
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Структура банка из Excel файла и длина поля
Ответ #3 - 02.12.2021 :: 20:37:42
 
Видимо Вы е прочитали всё обсуждение. Там говорится:
Цитата:
Все текстовые ячейки по умолчанию имеют длину 255. Если подключаемый файл xls при создании банка имеет ячейки с содержимым более 255 знаков, то поле создается типа "Файл".  Поэтому Вам лучше создать банк и подключить к нему файл xls, в котором первые ячейки заполнены более чем 255 символами. Потом файл можно будет переключать.


Анализируется не весь файл, а только начальные его строки.
Наверх
 
 
IP записан
 
Юзер99335588
Опытный пользователь
***
Вне Форума



Сообщений: 92
Re: Структура банка из Excel файла и длина поля
Ответ #4 - 03.12.2021 :: 10:06:30
 
Спасибо большое!

А можно чуть подробнее про Цитата:
"Вам лучше создать банк и подключить к нему файл xls"



я создал новый банк, тип ему указал - Access Excel -> создаю структуру, указываю мой файл -> предварительно первую строку XLS специально заполняю текстовыми значениями длинной более 500 символов -> создаётся таблица, в которой все поля типа "файл" -> я меняю на тип "текстовый" -> и вроде как всё появилось

правильно ли я сделал?

и можно потом этот банк перевести в формат Кронос?

добавлено:

я создал новый банк типа Кронос, создал в нём нужную структуру, создал таблицу обмена (типа просто все поля выделил) -> в оригинальном банке (который типа Excel) сделал запрос на все записи -> выделил их -> Результаты-Обмен данными -> выбрал банк-получатель и мою таблицу обмен -> Вид обмена - Весь банк -> Выполнить

Вроде как все данные скопировались в новый банк, который имеет тип Кронос

Правильно?
Наверх
 
 
IP записан
 
Юзер99335588
Опытный пользователь
***
Вне Форума



Сообщений: 92
Re: Структура банка из Excel файла и длина поля
Ответ #5 - 03.12.2021 :: 14:14:09
 
Вдруг кому-нибудь будет полезно напишу свой способ перевода файла Excel (таблицы) в базу Кронос. Особенно когда в ячейке есть текст, длина которого более 255 символов

обсуждалось здесь

1. у вас должен быть подготовленный файл Excel, желательно первой строкой задать название будущих полей базы, а вторая строка должна содержать случайный текст, длина которого будет более 255 символов. Потом эту строку можно будет удалить в итоговой базе
2. в Кроносе создаёте банк типа Excel/Access
3. Создаём структуру нашего банка: Проектирование - Структуры банка данных - Выбираем файл банка - Делаем выбор подключаемых баз - появился наш лист, кликаем на него и выбираем "Свойства" - меняем у полей тип "Ф" на "Т" (длина поля изменится автоматически)
4. Жмём Ок

Всё, у нас есть база с нашими данными из фала Excel. Мы можем с ним работать, но он находится в режиме "только для чтения" и его нельзя копировать. Для полноценной работы его надо преобразовать в банк типа "Кронос", для этого делаем следующее:

5. Создаем новый банк
6. Теперь надо создать банк данных. Проектирование - Структуры банка данных - Структура - выбираем из списка ранее созданный банк типа Excel - Выполнить. Мы создали банк повторяющий исходный.
7. Необходимо создать "Таблицы обмена": в банке-получателе - Проектирование - Таблиц обмена - Новая - Указываем имя, жмём "Создать"; в банке-источнике делаем тоже самое
8. Выполняем запрос в банке-источнике для получения всех записей
9. Выделяем все записи из выполненного запроса - Результаты - Обмен данными - Указываем "Таблицу обмена", Банк-получатель, Указываем "Таблицу обмена получателя", Вид обмена "Весь банк" - Выполнить

Всё, мы имеем в банке типа "Кронос" все наши записи.
================================================================================
=========
Есть ещё один способ, не знаю правильный он, но даёт похожий результат:

Так же надо создать новый, пустой банк типа "Кронос"

1. Проектирование - Структуры банка данных - Импорт из файла - выбираем наш файл Excel - в окне "Импорт файла" выборочно выбираем нужный лист - Извлечь данные

Всё, мы так же получили наши данные из Excel файла. Теперь мы можем работать с данными.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Структура банка из Excel файла и длина поля
Ответ #6 - 03.12.2021 :: 14:57:56
 
Вы сами отвечаете на свои же вопросы.
Можно и так.
Можно по другому.
Открываете импорт из внешних источников-Файл-Выбираете (подбираете) нужный драйвер-Копировать структуру (выборочно или полностью)-Тут же заходите Базы банка-Свойства и меняете длину поля на подходящую для Вас. Длина поля не влияет на физический размер БД. В отличие от многих других БД размеры не резервируются. Хоть 255, хоть 100000. Просто при вводе будет ограничение и может выдать ошибку при ревизии.
Наверх
 
 
IP записан
 
Юзер99335588
Опытный пользователь
***
Вне Форума



Сообщений: 92
Re: Структура банка из Excel файла и длина поля
Ответ #7 - 03.12.2021 :: 15:38:48
 
Спасибо !

Но самое главное, что я понял - это в файле Excel первая строка с данными должна быть с записями, где число символов более 255
Иначе будет обрезание размера поля
Такую строку нужно самому принудительно создать в файле
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 025
Санкт-Петербург
Re: Структура банка из Excel файла и длина поля
Ответ #8 - 03.12.2021 :: 18:30:58
 
В современных версиях Cronos в формах ввода можно использовать возможности COM объектов, LuaSQL или LibXL (специальная библиотека для excel) для извлечения данных программным способом.
Наверх
 
 
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать