Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Рвет кодировку 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
1-28825
coder-lamer
2003-02-02 01:37
2003.02.10
Вопрос о консольном приложении...


14-29042
Romkin
2003-01-23 11:59
2003.02.10
Интеграл 3/8


7-29139
Чегермек
2002-11-30 20:55
2003.02.10
Время (высокоточное)


3-28601
Mahbyf
2003-01-22 14:43
2003.02.10
PLEASE? HELP


14-29084
Шишкин Илья
2003-01-24 21:23
2003.02.10
Помогите найти прогу (или компонент)