Автор | Сообщение |
|
| постоянный участник
|
Пост N: 4498
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.09.15 18:00. Заголовок: Перенос базы из RU866 в UTF8 ?
Всем привет. Собрался переносить базу из кодировки RU866 в UTF8. Мемо-поля не хочу использовать. Как быть с длинными текстовыми данными ? Допустим адрес в поле С-250, как делать для новой базы с UTF8 ? Заводить два поля для адреса ? А как тогда разбивать и переносить из RU866 в UTF8 ?
|
|
|
Ответов - 62
, стр:
1
2
3
4
All
[только новые]
|
|
|
| |
Пост N: 147
Зарегистрирован: 21.04.13
|
|
Отправлено: 02.09.15 19:35. Заголовок: Стоит ли овчинка выделки ?
Вопрос - какой профит хотите получить от этой операции ?
|
|
|
|
| постоянный участник
|
Пост N: 4500
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.09.15 22:23. Заголовок: DBF нужна для перево..
DBF нужна для перевода данных на сайт. Показ DBF на странице сайта с помощью руби. Сайт делаю не я. В базе текстовые поля для перевода в UTF8 нужно увеличивать в 2 раза. Если текстовое поле меньше 127 то хорошо. Можно в новой структуре базы в UTF8 допустим было C 40 - делаем С 80. А если поле С-255, как его перевести в UTF8 ? С 500 в DBF нет, значит нужно 2 поля заводить. Для мемо поля делал раньше так UTF8->MADRES := RU866->MADRES. Таких текстовых полей штук 10. Ручками переписывать придётся, т.е. самая простая операция типа так: UTF8->ADRES1 := SUBSTR(RU866->ADRES,1,127) UTF8->ADRES2 := SUBSTR(RU866->ADRES,127) Правильно ? Или ещё что то надо учитывать ? С UTF8 не работал....
|
|
|
|
| |
Пост N: 148
Зарегистрирован: 21.04.13
|
|
Отправлено: 02.09.15 22:47. Заголовок: экспорт спасет ... ?
Зачем же рабочую базу с движком обработки корежить ?! Сделайте экспорт ( по расписанию или по кнопке) и пусть "руби" его (этот/эти файлы экспорта) отображает. Полагаю, что ему лучше подсунуть что-то другое , чем dbf в UTF-8 ( скорее всего xml ) Вообще-то это называется "витрина данных"
|
|
|
|
| постоянный участник
|
Пост N: 4501
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.09.15 01:45. Заголовок: petr707 пишет: Пола..
petr707 пишет: цитата: | Полагаю, что ему лучше подсунуть что-то другое , чем dbf в UTF-8 |
| Нет не лучше. Данные будут на LetoDb в базе, а руби будет отображать данные по запросу, напрямую из DBF. Из-за этого и нужна UTF-8.
|
|
|
|
| постоянный участник
|
Пост N: 810
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.09.15 09:14. Заголовок: Andrey Попробуй RE..
Andrey Попробуй REQUEST HB_CODEPAGE_UTF8EX USE InpDB ALIAS INP VIA 'RU866' NEW nInp := select() dbCreate('OutDB', aStru, 'DBFCDX', .T., 'OUT', , 'UTF8EX') DO WHILE ! ( nInp )->( EOF() ) переносим данные из INP в OUT ( nInp )->( dbSkip(1) ) ENDDO или REQUEST HB_CODEPAGE_UTF8EX ... hb_cdpSelect( "UTF8EX" ) ... USE InpDB ALIAS INP VIA 'RU866' NEW ...
|
|
|
|
| Администратор
|
Пост N: 3339
Зарегистрирован: 23.05.05
|
|
Отправлено: 03.09.15 09:16. Заголовок: Когда-то в харборе б..
Когда-то в харборе была возможность работы с символьными полями длиной до 64к: dbCreate('test', {{"C1", "C", n1, n2}}) поле C1 имело длину n2*256+n1 символов (байт) Затем эту фичу убрали. Но в комментариях она еще осталась: src\rtl\rdd\workarea.c функция hb_waCreateFields /* Too many people reported the behavior with code below as a Clipper compatibility bug so I commented this code, Druzus. #ifdef HB_CLP_STRICT dbFieldInfo.uiLen = uiLen; #else dbFieldInfo.uiLen = uiLen + uiDec * 256; #endif */ Если раскомментировать этот код, и пересобрать харбор (hbrdd.lib), то фича появится вновь
|
|
|
|
| постоянный участник
|
Пост N: 811
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.09.15 09:30. Заголовок: поля длиной 500, 102..
поля длиной 500, 1024, 1024*4 создаются и работают
|
|
|
|
| |
Пост N: 653
Зарегистрирован: 20.02.11
|
|
Отправлено: 03.09.15 11:59. Заголовок: SergKis пишет: поля..
SergKis пишет: цитата: | поля длиной 500, 1024, 1024*4 создаются и работают |
| 500 точно, остальное не пробовал проверил DBFCDX - точно все создает
|
|
|
|
| постоянный участник
|
Пост N: 4503
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.09.15 12:01. Заголовок: SergKis пишет: поля..
SergKis пишет: цитата: | поля длиной 500, 1024, 1024*4 создаются и работают |
| Блин, вообще не знал... Это получатся только Харбор умеет - работать с текстовыми полями > 255 символами ?
|
|
|
|
| постоянный участник
|
Пост N: 812
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.09.15 12:14. Заголовок: SergKis пишет:USE In..
SergKis пишет: цитата: | USE InpDB ALIAS INP VIA 'RU866' NEW |
| USE InpDB ALIAS INP VIA 'DBFCDX' NEW CODEPAGE 'RU866' такое хотел написать
|
|
|
|
| |
Пост N: 29
Зарегистрирован: 22.04.15
|
|
Отправлено: 07.08.19 17:24. Заголовок: Та же беда, хочу все..
Та же беда, хочу все БД перенести с кодировки 866 на UTF8 /*уже ВЕЗДЕ сталкиваюсь с данной проблемой/, следовательно требуется увеличить максимальное количество символов с текстовыми полями (>255). Возможно уже стоит убрать лимит в 255 символов ? *тем более требуется больше символов (конечно в разумных пределах, произведение Война и Мир не собираюсь впихивать ), чтобы не использовать мемо-поля или делить текст на несколько полей
|
|
|
|
|
| постоянный участник
|
Пост N: 6384
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.08.19 17:26. Заголовок: Новичок пишет: Возм..
Новичок пишет: цитата: | Возможно уже стоит убрать лимит в 255 символов ? |
| Теперь нет лимита для CDX драйвера, можно больше поле делать. До скольких можно - не знаю. Делал 512.
|
|
|
|
| |
Пост N: 30
Зарегистрирован: 22.04.15
|
|
Отправлено: 07.08.19 17:34. Заголовок: ДА еще, между делом,..
ДА еще, между делом, вопросик, на FOXPRO индексы нет-нет да слетали(причем чаще чем хотелось бы), приходилось постоянно проверять и реиндексировать, как обстоят дела у Harbour с DBFCDX ? к примеру, использую NTX (и ранее на Clipper), практически не слетает.
|
|
|
|
| постоянный участник
|
Пост N: 2722
Зарегистрирован: 17.02.12
|
|
Отправлено: 07.08.19 17:40. Заголовок: Andrey пишет До скол..
Andrey пишет цитата: | До скольких можно - не знаю. Делал 512. |
| SergKis пишет цитата: | поля длиной 500, 1024, 1024*4 создаются и работают |
| Haz пишет цитата: | проверил DBFCDX - точно все создает |
|
|
|
|
|
| |
Пост N: 31
Зарегистрирован: 22.04.15
|
|
Отправлено: 07.08.19 17:42. Заголовок: Паранойя с CDX пока ..
Паранойя с CDX пока осталась (не хочу пока по граблям скакать), а для NTX не увеличили ? *надо попробовать, благо сделал прогу которая сама анализирует на наличие БД и его индексов, автоматически создает/восстанавливает
|
|
|
|
| moderator
|
Пост N: 1332
Зарегистрирован: 06.07.06
|
|
Отправлено: 07.08.19 17:53. Заголовок: Новичок пишет: как ..
Новичок пишет: цитата: | как обстоят дела у Harbour с DBFCDX ? |
| Ни в Клиппере с версии 5.2, ни в Харборе проблем с CDX нет - отказался от ntx уже лет как 25 назад.
|
|
|
|
| |
Пост N: 32
Зарегистрирован: 22.04.15
|
|
Отправлено: 07.08.19 17:57. Заголовок: *Проблемы были... ну..
*Проблемы были... ну бог с ним Создал 1024, даже 40000 - создало через NTX ! проверил через DBVIEW - вроде пашет, ток 40 000 DBVIEW париться с текстовым полем) попробую программно - запись, считывание, индексацию...
|
|
|
|
| постоянный участник
|
Пост N: 6385
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.08.19 17:59. Заголовок: А зачем такое большо..
А зачем такое большое текстовое поле ? Уж лучше с мемо тогда работать, там вообще ограничение в 2 Гбайта.
|
|
|
|
| |
Пост N: 33
Зарегистрирован: 22.04.15
|
|
Отправлено: 07.08.19 18:08. Заголовок: *просто хотел провер..
*просто хотел проверить максимальное ограничение, кстати и какое макс.ограничение ? *да мне лично хватит и 1024 (utf8 1024/2=512), что кстати сейчас и проверяю...
|
|
|
|
| |
Пост N: 34
Зарегистрирован: 22.04.15
|
|
Отправлено: 07.08.19 18:16. Заголовок: Короче проверил (102..
Короче проверил (1024) Запись и Считывание работает - 1024 символа При индексации NTX - идет ограничение на 256
|
|
|
Ответов - 62
, стр:
1
2
3
4
All
[только новые]
|
|