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




Пост 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 
ПрофильЦитата Ответить



Пост N: 35
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 18:17. Заголовок: у DBVIEW - проблема ..


у DBVIEW - проблема с длинными строками, и ограничение - не показывает всю строку(срезает)

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



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


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

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



Пост N: 37
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 18:37. Заголовок: 1.и кстати утилита D..


1.и кстати утилита DBU, поставьте "*.*" вместо "*.dbf" - обычно расширение DBF заменяю на другое, в зависимости от программы (так вижу какие БД к какой задаче относятся)
2.при установке Harbour и указания директории установки отличное от C:\MiniGUI, нельзя везде прописать выбранный директорий, а то приходится все время ручками корректировать, ну к примеру compile.bat, *.cfg, и т.д.

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




Пост N: 6386
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.08.19 18:51. Заголовок: Новичок пишет: 2.пр..


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

 цитата:
2.при установке Harbour и указания директории установки отличное от C:\MiniGUI, нельзя везде прописать выбранный директорий, а то приходится все время ручками корректировать, ну к примеру compile.bat, *.cfg, и т.д.


Подправь пути в \MiniGUI\BATCH\Compile.Bat
 
rem Set default paths to BCC, Harbour, xHarbour, MiniGUI
if defined MG_CMP if "%MG_CMP%"=="XHARBOUR" set MV_USEXHRB=Y
if not defined MG_BCC set MG_BCC=c:\bcc55
if not defined MG_ROOT set MG_ROOT=c:\minigui
if not defined MG_HRB set MG_HRB=%MG_ROOT%\harbour
if not defined MG_LIB set MG_LIB=%MG_ROOT%\lib
if not defined MG_XHRB set MG_XHRB=c:\xharbour

Или заведи свои переменные в окружение
set MG_BCC = ??? 
set MG_ROOT = ???


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



Пост N: 38
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 07.08.19 18:57. Заголовок: я так и делаю, все в..


я так и делаю, все время подправляю, скачиваю новую версию и опять подправляю...
ведь при установке все равно спрашивает директорий установки, пусть сразу либо установка подправит автоматически или автоматически задаст переменные, раз уже указано директорий установки... не обязательно конечно, вроде мелочь - но мелочь приятная :)

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




Пост N: 6387
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.08.19 23:31. Заголовок: Новичок пишет: я та..


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

 цитата:
я так и делаю, все время подправляю, скачиваю новую версию и опять подправляю...


Сделай тогда так -
Или заведи свои переменные в окружение 
set MG_BCC = ???
set MG_ROOT = ???


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



Пост N: 178
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 13.08.19 15:34. Заголовок: Andrey пишет: Уж лу..


Andrey пишет:

 цитата:
Уж лучше с мемо тогда работать, там вообще ограничение в 2 Гбайта.



А индексировать его как?

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



Пост N: 2737
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.08.19 15:50. Заголовок: rvu пишет А индексир..


rvu пишет
 цитата:
А индексировать его как?


Кроме составления выражения substr(<memo>,...) можно применить http://www.kresin.ru/hrbfaq_3.html#Doc13_14

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

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