Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

Рвет кодировку MSSQL -> dbase IV   Найти похожие ветки 

 
Siv Soft   (2003-01-22 17:04) [0]

Всем доброго времени суток!
Необходимо программно переносить данные из таблиц MSSQL в таблицы dBase IV, но возникает проблемма - рвет кодировку. У MSSQL cp 1251 , а у dBase IV cp 866. Как пофиксить сие так, чтобы из одной кодировки в другую нормально переводил?

Перегоняю обычно:
ADOTable1->FieldValues["DINP"]=ADOTable2->FieldValues["date"];


 
sniknik   (2003-01-22 17:29) [1]

запросом через Jet не пробовал? и быстрее будет и кодировка автоматом приводится
если параметр Jet - DataCodePage в реестре OEM то ->
хелп

DataCodePage
Определяет способ сохранения текстовых страниц. Возможные значения:
OEM — Преобразования из OEM в ANSI и из ANSI в OEM выполняются.
ANSI — Преобразования из OEM в ANSI и из ANSI в OEM не выполняются.


 
Siv Soft   (2003-01-23 10:30) [2]

Уточню за Jet - я и так вроде в ADOConnections работаю через Jet OLE DB 4.0. Может что-то другое имеется в виду?

А как в таком случае программно переводить или включить перевод из одной кодировки в другую? Как-то лазить в реестр на клиентской машине...


 
sniknik   (2003-01-23 10:53) [3]

>Уточню за Jet - я и так вроде в ADOConnections работаю через Jet OLE DB 4.0. Может что-то другое имеется в виду?
может быть, в вопросе стоит из MSSQL -> dbase IV. т.е. в соеденении должно стоять чтото вроде Provider=SQLOLEDB.1....
а запрос делатся из него (т.е. самим MSSQL) примерно так
INSERT INTO
OpenDataSource("Microsoft.Jet.OLEDB.4.0", "Data Source="D:\";Extended properties=dBase IV")...CASHDISC
SELECT * FROM CASHDISC
а твоем варианте передача значениями между различными датасетами (неэффективно), можно перекодировать AnsiToOem, OemToAnsi, CharToOem (функции уточни может ошибся в написании)

> Как-то лазить в реестр на клиентской машине...
не понадобится, по умолчанию OEM стоит, а даже если и нет неужели проблема заначение в регистре поменять?


 
Siv Soft   (2003-01-23 11:58) [4]

Спасибо за ответ.
Однако при использовании такого способа (конечно более эффективного) появляется проблемма запрос идет с ошибкой. В Query Analiser относительно синтаксиса все ок, но при исполнении выдается ошибка:
String or binary data would be truncated.
The statement has been terminated.

Как сие пофиксить?
Сам запрос такой:
INSERT INTO
OpenDataSource("Microsoft.Jet.OLEDB.4.0", "Data Source="E:\Keeper";Extended properties=dBase IV")...Report
SELECT * FROM Castodi.dbo.Report


 
sniknik   (2003-01-23 12:35) [5]

гдето строки по длине различаются (структуры разные откуда и куда) или бинарные данные.

ставни. либо приводи в запросе к "правильному" типу.


 
Siv Soft   (2003-01-23 12:51) [6]

Абсолютно одинаковые! Проверил и все равно тоже.


 
sniknik   (2003-01-23 13:29) [7]

возможно запрос просто не синхронизировал поля (одно поле в другое пытается писать) или называются по разному

задавай явно

INSERT INTO
OpenDataSource("Microsoft.Jet.OLEDB.4.0", "Data Source="D:\";Extended properties=dBase IV")...CLASDISC
(PRICEINDEX, [PERCENT])
SELECT PRICEINDEX, SPERCENT FROM CLASDISC
(заметь разницу в названии)


 
Siv Soft   (2003-01-23 14:27) [8]

Самый интересный момент заключается в том, что результат от сего способа такой же - все равно крякозябрики :(( (просматриваю Database Desktop). Как все это пофиксить?


 
sniknik   (2003-01-23 14:34) [9]

пофиксить Database Desktop :-)

он же в дос кодировку переводит, смотри в Дос-е Нортон Командером к примеру.

а вот если спутал и на самом деле тебе нужно виндовую кодировку то сотри мой первый ответ про OEM/ANSi



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
6-28953
FDel
2002-12-16 16:04
2003.02.10
IP-адрес


14-28999
Феликс
2003-01-23 13:28
2003.02.10
Как обработать post?


14-29029
Chubais
2003-01-23 18:31
2003.02.10
Поиск ошибок


3-28622
novill
2003-01-23 10:54
2003.02.10
BDE SQL не хочет работать с полем по имени


14-29092
Supreme
2003-01-25 16:10
2003.02.10
Нужно раздобыть аналог Панели задач





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский