Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с DBF [D6]


studentik ©   (2002-07-19 01:36:00) 

Есть файл kredit.dbf досовского формата. Подключаясь вижу нечитаемый текст.
Вопрос: Как подключаясь из программы организовать Alias с указанием пути к файлу и LANGDRIVER?

Приму любую помощь, будь-то решение через BDE или ADO компоненты.
В ADO использовал следующие параметры подключения:

Provider=MSDASQL.1;Persist Security Info=False;
Extended Properties="DSN=Файлы dBASE;
DBQ=C:\WORK\BASES;DefaultDir=C:\WORK\BASES;
DriverId=533;FIL=dBase 5.0;MaxBufferSize=2048;
PageTimeout=5;";Initial Catalog=C:\Work


Desdechado   (2002-07-22 10:38:00) [1]


var dbLio: TDatabase; // в нем прописываешь путь к базе


{--- настройка параметров сессии ---}
Session.ConfigMode := cmSession;
cDatabase := StringOfChar( #0, 1024 );
if( GetTempPath( 1024, PChar( cDatabase ) ) <> 0 ) then
begin
SetLength( cDatabase, Pos( #0, cDatabase ) - 1 );
Session.PrivateDir := cDatabase;
end;
cDatabase := "";
liDriverParam := TStringList.Create();
liDriverParam.Add( "OPEN MODE=READ/WRITE" );
liDriverParam.Add( "LANGDRIVER=" + cLangDriver );
if( cDriver <> "STANDARD" ) then
liDriverParam.Add( "SQLQRYMODE=SERVER" );
Session.ModifyDriver( cDriver, liDriverParam );
liDriverParam.Free;
{--- попытка соединения с БД ---}
with( dbLio ) do
begin
DriverName := cDriver;
Params.Add( "SERVER NAME=" + cDatabase );
Params.Add( "USER NAME=" + Trim( cLogin ) );
Params.Add( "PASSWORD=" + Trim( cPassword ) );
try
Connected := True;
result := True;
except
ShowWarning( rc_ServerNotConnected + #13#10 + cDatabase );
end;
end; // with


IlyaA   (2002-07-22 10:35:00) [2]

Есть неплохая ф-я OemToChar, какраз конвертит OEM кодировку в Win1251. Сам недавно писал конвертор для Fox-х баз. Нужен был Import из старой проги в новую


studentik   (2002-07-22 05:20:00) [3]

to Desdechado
Как не вертел Sesion, а смог открыть лишь указав путь через BDEAdmin.
Если есть проектик соответсвующий вопросу, плз поделитесь.

to DAO
Функцию OemConvert?
По справке OEMConvert - property : Boolean.
И как им пользоваться?


Desdechado   (2002-07-20 18:44:00) [4]

из программы используй Session


DAO   (2002-07-20 06:44:00) [5]

Ипспользуй функцию OemConvert

ЗЫ:
--Впрочем для ADO свойство Font можно не трогать, если изменить настройки через BDEAdmin, а если не изменить, то и Font DBGrid`a не помогает.--

Не понял зачем тебе BDE если у тебя есть OLE DB (ADO)...


studentik   (2002-07-20 04:48:00) [6]

to Виталий Панасенко
Спасибо, через BDE получилось, но вопрос состоял в том, чтобы это сделать из программы.
Кроме того возникли вопросы:
Что за параметр LEVEL, в чем его суть?
Свойство Font, где оно находится?
Если Font у DBGrid, то я не собирался его использовать.
Кстати, эксперементировал с этим свойством в D6 под Win2000 и D5 под Win98Se и во втором случае свойство Charset у DBGrid`a не влияло!?
Впрочем для ADO свойство Font можно не трогать, если изменить настройки через BDEAdmin, а если не изменить, то и Font DBGrid`a не помогает.


Виталий Панасенко   (2002-07-19 09:05:00) [7]

Через АДО: установи значение свойства Font->CharSet=OEM_CHARSET
Через БДЕ: BDEAdmin->Configuration->Drivers->Native->dBase->LangDriver="bBASE RUS cp866"+LEVEL=3


Наверх

Титульная страница Поиск, карта сайта Написать письмо