Главная страница
    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.01 c
1-28918
SergeN
2003-01-31 09:21
2003.02.10
try...except


1-28873
pl_quad
2003-01-30 15:26
2003.02.10
Enumerated type


9-28583
Asteroid
2002-08-29 02:50
2003.02.10
Генерация текстур


3-28655
Ihor Osov'yak
2003-01-22 16:29
2003.02.10
MSSQL: READTEXT в локальную переменную


1-28774
Saracin
2003-02-01 15:20
2003.02.10
Печать картинки и текста из TEdit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский