Текущий архив: 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