On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 4498
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.09.15 18:00. Заголовок: Перенос базы из RU866 в UTF8 ?


Всем привет.
Собрался переносить базу из кодировки RU866 в UTF8. Мемо-поля не хочу использовать.
Как быть с длинными текстовыми данными ?
Допустим адрес в поле С-250, как делать для новой базы с UTF8 ? Заводить два поля для адреса ?
А как тогда разбивать и переносить из RU866 в UTF8 ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 28 , стр: 1 2 All [только новые]





Пост N: 147
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 02.09.15 19:35. Заголовок: Стоит ли овчинка выделки ?


Вопрос - какой профит хотите получить от этой операции ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 не работал....

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 148
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 02.09.15 22:47. Заголовок: экспорт спасет ... ?


Зачем же рабочую базу с движком обработки корежить ?!
Сделайте экспорт ( по расписанию или по кнопке) и пусть "руби" его (этот/эти файлы экспорта) отображает.
Полагаю, что ему лучше подсунуть что-то другое , чем dbf в UTF-8 ( скорее всего xml )
Вообще-то это называется "витрина данных"

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4501
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.09.15 01:45. Заголовок: petr707 пишет: Пола..


petr707 пишет:

 цитата:
Полагаю, что ему лучше подсунуть что-то другое , чем dbf в UTF-8


Нет не лучше.
Данные будут на LetoDb в базе, а руби будет отображать данные по запросу, напрямую из DBF.
Из-за этого и нужна UTF-8.

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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
...


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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), то фича появится вновь

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 811
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.09.15 09:30. Заголовок: поля длиной 500, 102..


поля длиной 500, 1024, 1024*4 создаются и работают

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 653
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.09.15 11:59. Заголовок: SergKis пишет: поля..


SergKis пишет:

 цитата:
поля длиной 500, 1024, 1024*4 создаются и работают


500 точно, остальное не пробовал
проверил DBFCDX - точно все создает

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4503
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.09.15 12:01. Заголовок: SergKis пишет: поля..


SergKis пишет:

 цитата:
поля длиной 500, 1024, 1024*4 создаются и работают


Блин, вообще не знал...
Это получатся только Харбор умеет - работать с текстовыми полями > 255 символами ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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'
такое хотел написать


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 29
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 17:24. Заголовок: Та же беда, хочу все..


Та же беда, хочу все БД перенести с кодировки 866 на UTF8 /*уже ВЕЗДЕ сталкиваюсь с данной проблемой/,
следовательно требуется увеличить максимальное количество символов с текстовыми полями (>255).

Возможно уже стоит убрать лимит в 255 символов ? *тем более требуется больше символов (конечно в разумных пределах, произведение Война и Мир не собираюсь впихивать ), чтобы не использовать мемо-поля или делить текст на несколько полей

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6384
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.08.19 17:26. Заголовок: Новичок пишет: Возм..


Новичок пишет:

 цитата:
Возможно уже стоит убрать лимит в 255 символов ?


Теперь нет лимита для CDX драйвера, можно больше поле делать.
До скольких можно - не знаю. Делал 512.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 30
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 17:34. Заголовок: ДА еще, между делом,..


ДА еще, между делом, вопросик, на FOXPRO индексы нет-нет да слетали(причем чаще чем хотелось бы), приходилось постоянно проверять и реиндексировать,
как обстоят дела у Harbour с DBFCDX ? к примеру, использую NTX (и ранее на Clipper), практически не слетает.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2722
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.08.19 17:40. Заголовок: Andrey пишет До скол..


Andrey пишет
 цитата:
До скольких можно - не знаю. Делал 512.


SergKis пишет
 цитата:
поля длиной 500, 1024, 1024*4 создаются и работают


Haz пишет
 цитата:
проверил DBFCDX - точно все создает



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 31
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 17:42. Заголовок: Паранойя с CDX пока ..


Паранойя с CDX пока осталась (не хочу пока по граблям скакать), а для NTX не увеличили ?
*надо попробовать, благо сделал прогу которая сама анализирует на наличие БД и его индексов, автоматически создает/восстанавливает

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1332
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.08.19 17:53. Заголовок: Новичок пишет: как ..


Новичок пишет:

 цитата:
как обстоят дела у Harbour с DBFCDX ?


Ни в Клиппере с версии 5.2, ни в Харборе проблем с CDX нет - отказался от ntx уже лет как 25 назад.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 32
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 17:57. Заголовок: *Проблемы были... ну..


*Проблемы были... ну бог с ним
Создал 1024, даже 40000 - создало через NTX ! проверил через DBVIEW - вроде пашет, ток 40 000 DBVIEW париться с текстовым полем)
попробую программно - запись, считывание, индексацию...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6385
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.08.19 17:59. Заголовок: А зачем такое большо..


А зачем такое большое текстовое поле ?
Уж лучше с мемо тогда работать, там вообще ограничение в 2 Гбайта.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 33
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 18:08. Заголовок: *просто хотел провер..


*просто хотел проверить максимальное ограничение, кстати и какое макс.ограничение ?
*да мне лично хватит и 1024 (utf8 1024/2=512), что кстати сейчас и проверяю...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 34
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 18:16. Заголовок: Короче проверил (102..


Короче проверил (1024)
Запись и Считывание работает - 1024 символа
При индексации NTX - идет ограничение на 256

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 28 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 356
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет