powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / cpconvert(866, 1251, field_name) для строк > 255 символов?
13 сообщений из 13, страница 1 из 1
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33107871
midavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
качаю данные из DBF в MS запросом
SELECT * FROM OPENROWSET('VFPOLEDB','D:\dbf';'';'',select * from 878_050501_050504.dbf]')
но в некоторых записях МЕМО-поля есть данные на кирилице и они при перекачке отображаются как каракули.

Есть способ как это обойти, а именно
SELECT * FROM OPENROWSET('VFPOLEDB','D:\dbf';'';'',select fl1, fl2, ..., fl62 cpconvert(866, 1251, fl62) as fl62 from 878_050501_050504.dbf]')
но это только для строк длинной <= 255 символов, т.к. если строка в МЕМО-поле > 255, то выдается ошибка:

Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'VFPOLEDB' reported an error.
[OLE/DB provider returned message: String is too long to fit.]
OLE DB error trace [OLE/DB Provider 'VFPOLEDB' ICommandText::Execute returned 0x80004005: ].

Как конвертнуть строки более 255 символов?
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33108313
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi midavik!

Он просто после применения функции считает что поле стало простым
символьным - вот и не влазит туда memo. Если у тебя провайдер 9-й версии, то
см. на CAST (... AS Memo), Если более древний... А что собственно мешает
пойти и совершенно бесплатно скачать свежий :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33110917
midavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Igor Korolyov

Спасибо. Bроде работает.
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33461512
Подскажите куда CAST вставлять ?
в доке на foxpro пишется, что функция не поддерживается.
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33461655
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смирнов ДмитрийПодскажите куда CAST вставлять ?
в доке на foxpro пишется, что функция не поддерживается.Функция CAST() поддерживается начиная с VFP90. У тебя какая Fox ???
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33461671
Владимир СА Смирнов ДмитрийПодскажите куда CAST вставлять ?
в доке на foxpro пишется, что функция не поддерживается.Функция CAST() поддерживается начиная с VFP90. У тебя какая Fox ???
у меня
Visual FoxPro 9.0
Visual FoxPro OLE DB Provider
надо данные запихать в SQL сервер и все ок, кроме Memo полей.
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33461765
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смирнов Дмитрий...надо данные запихать в SQL сервер и все ок, кроме Memo полей.Организуй Remote View и перекачивай на сервер. В надежде, что это разовая работа.
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33462582
я не могу организовать remote view в полноценном варианте.
Таблицы dbf формата FoxPro 2.5, кодировка 866. Все данные в запросе в нормальном читабельном виде, кроме memo полей. Как будто они не подвергаются трансляции 866->1251. К тому же после переноса данных необходимо поддерживать в актуальном состоянии таблицы dbf для старых приложений. Может есть какие то уже рабочие схемы для такой работы?
Вот такое дело...
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33462823
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смирнов Дмитрий...Таблицы dbf формата FoxPro 2.5, кодировка 866. Все данные в запросе в нормальном читабельном виде, кроме memo полей. Как будто они не подвергаются трансляции 866->1251. К тому же после переноса данных необходимо поддерживать в актуальном состоянии таблицы dbf для старых приложений. Может есть какие то уже рабочие схемы для такой работы?...Я очень давно этой проблемой занимался, и сейчас я в отпуске. Посмотри такую идею (что-то такое я делал, точно вспомнить немогу):
Открываешь таблицу содержащую MEMO-поле в VFP. Копируешь MEMO-поле в файл, и попробуй указать кодовую страницу 1251, см. команду
Код: plaintext
COPY MEMO <MemoFieldName> TO FileName AS nCodePage
Ты должен увидеть файл в кодировке 1251. Если ты при просмотре неувидишь этот файл в кодовой странице 1251, то создай новую талицу в VFP, у которой теперь кодовая страница 1251 и создай в ней MEMO-поле. И добавь это
Код: plaintext
APPEND MEMO <MemoFieldName> FROM FileName AS nCodePage
Должно получиться. И теперь на сервер.
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33463265
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Дмитрий!

> Все данные в запросе в нормальном читабельном виде, кроме memo полей. Как
> будто они не подвергаются трансляции 866->1251

Была такая ошибка в VFP9RTM - вылечена в SP1 - надеюсь ты скачал новую
версию провайдера?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33463278
Версия vfpoledb.dll 9.0.00.2412, возможности скачать весь vfp9sp1 нет, может где есть один этот файл?
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33465177
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Дмитрий!

А разве на MS сайте нет отдельно провайдера?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
cpconvert(866, 1251, field_name) для строк > 255 символов?
    #33465223
Igor Korolyov
Hi Дмитрий!

А разве на MS сайте нет отдельно провайдера?

Posted via ActualForum NNTP Server 1.3
Есть только той версии, которая у меня, то есть старой.
Отдельной версии провайдера из SP1 нет.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / cpconvert(866, 1251, field_name) для строк > 255 символов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]