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

Вниз

Проблемы с ADO   Найти похожие ветки 

 
Amper   (2002-11-25 09:44) [0]

Такой вопрос. Если использовать TTable и TADOTable, то для символьных полей при отображении в DBGrid получаю различные отображения этих строк. Как будто бы TADOTable конвертирует строки из одной кодировки в другую. Как решить эту проблему?


 
oss ©   (2002-11-25 10:44) [1]

я бы сказал, что TTable конвертирует, а Ado показывает как есть. Выход есть, использовать что-то одно, или писать все на латинице :)


 
sniknik ©   (2002-11-25 11:20) [2]

TTable и TADOTable разные движки используют вот и дается в одной с конвертацией в другой нет.

настрой одинаково и такого не будет.

для TTable (BDE) BDE Administrator->Configuration->Drivers->Native->DBASE (or FOXPRO)->LANGDRIVER = dBASE RUS cp866

для TADOTable (ADO Jet? его используеш?) в regedit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage = ANSI (or OEM не помню точно пробуй)


 
Amper   (2002-11-25 12:05) [3]

>>ADO Jet? его используеш?
Не знаю. Использую тот TADOTable компонет, который есть в стандартной поставке 5 делфы.


 
sniknik ©   (2002-11-25 12:18) [4]

А строка подключения? какая?
типа этой
Provider= Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False
то JET.


 
Карелин Артем ©   (2002-11-25 12:21) [5]

Жми правым батоном на компонентах, добавляй все поля. Ну и поиграйся с свойством Transliterate у текстовых полей. Мне помогло в свое время.


 
Amper   (2002-11-25 12:24) [6]

Строка такая
Provider=MSDASQL.1;Persist Security Info=False;Data Source=????? dBASE;Extended Properties="DSN=????? dBASE;DefaultDir=D:\Borland\Delphi5\Projects\Robota\LK\lk_depack;DriverId=533;FIL=dBase III;MaxBufferSize=2048;PageTimeout=5;"


 
sniknik ©   (2002-11-25 12:51) [7]

ODBC алиас "Файлы dBASE", драйвер "DRIVER={Microsoft dBase Driver (*.dbf)}",
ищи как настраивантся.


 
Amper   (2002-11-25 14:11) [8]

Уже. Поставил там кодировку cp866, но все равно ничего не изменилось.

2 Карелин Артем
Transliterate не помог.

А таблица, вообще то, в дос кодировке записана.


 
oss ©   (2002-11-25 16:38) [9]

ну так преобразовывай ОЕМ к ANSI и все будет нормально


 
Amper   (2002-11-25 16:51) [10]

То есть. Где преобразовывать?


 
Карелин Артем ©   (2002-11-25 16:54) [11]

Amper (25.11.02 16:51)
OnGetText, OnSetText у TField


 
oss ©   (2002-11-25 17:02) [12]

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


 
Amper   (2002-11-25 17:15) [13]

Перегонка невозможна. Дело в том, что я работаю с БД которая создается DOS прогой. Таблицы все время обновляются и каждый раз конвертировать не покатит. Тем более, что они огромные.

А проблемма возникла из-за того, что я не смог работать с этой таблицей стандартным компонентом TQuery. Дело в том, что у меня в таблице есть поле типа CHAR длинной 255 символов. А TQuery почему-то не хочет работать с такой таблицей. Если обрезаю до 254 то все нормально, а 255 никак. Может кто стыкался с такой траблой?
А вот TADOQuery нормально читает такую таблицу, но че то там перекодирует непонятным образом. Некоторые буквы нормальные, а некоторые заменяются на другие без какой либо системы. Это даже не перекодировка с DOS в ANSI.


 
Amper   (2002-11-25 17:46) [14]

Соответственно, смена кодировки в Grid-е не помогла.


 
oss ©   (2002-11-25 18:26) [15]

ну тогда надо менять тип с CHAR на более прогрессивный :)



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

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-36252
----
2002-11-29 18:02
2002.12.12
Многопоточность.....


1-36219
ctapik-net
2002-12-01 19:33
2002.12.12
Определение свойств компонента в run-time


1-36275
Vladimir1
2002-12-02 15:39
2002.12.12
Программная задержка


14-36387
McSimm
2002-11-18 16:57
2002.12.12
Последствия встречи в Москве III


4-36467
Nick N A
2002-10-27 08:55
2002.12.12
Почему возникает ошибка в оконной процедуре ?