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

Вниз

Bde. Как из программы изменить настройки BDE?   Найти похожие ветки 

 
Arrows ©   (2005-11-15 17:34) [0]

Уважаемые мастера. Подскажите пожайлуста как из программы проверить и по необходимости изменить настройки BDE, конкретно Langdriver.


 
Desdechado ©   (2005-11-15 18:19) [1]

 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;


 
Arrows ©   (2005-11-19 17:17) [2]

Пишу в программе
 
  ...........
  liDriverParam := TStringList.Create();
  liDriverParam.Add( "OPEN MODE=READ/WRITE" );
  liDriverParam.Add( "LANGDRIVER=dBASE RUS cp866" );
  Session1.ModifyDriver( "DBase", liDriverParam );
  Session1.SaveConfigFile;
  liDriverParam.Free;
  Query1.Open;
  ..............

Смотрю BDE administratore действительно изменился на LANGDRIVER=dBASE RUS cp866, но русские буквы печатаются зябами. Если руками в администраторе меняю LANGDRIVER на dBASE RUS cp866, все хорошо, русские буквы печатаются нормально. Что такое может, я что то забыл написать?


 
Desdechado ©   (2005-11-19 20:45) [3]

Session - это автосоздаваемая переменная, к которой по умолчанию привязываются db-компоненты, а что такое Session1 у тебя?

я запамятовал, что нужно писать в cLangDriver - внутренний ID языка или его название. Поэкпериментируй вот с этим:
{----- определение языковых драйверов BDE -----}
function BDE_LangNameToDesc( cLangName: String ): String;
var
 LD: LDDesc;
 hCur: hDbiCur;
begin
 result := "";
 try
   Check( DbiOpenLdList( hCur ) );
   while( DbiGetNextRecord( hCur, dbiNOLOCK, @LD, nil ) = DBIERR_NONE ) do
     if( StrIComp( LD.szName, PChar( cLangName ) ) = 0 ) then
       begin
         result := String( LD.szDesc );
         break;
       end;
 finally
   Check( DbiCloseCursor( hCur ) );
 end;
end;
function BDE_LangDescToName( cLangDesc: String ): String;
var
 LD: LDDesc;
 hCur: hDbiCur;
begin
 result := "";
 try
   Check( DbiOpenLdList( hCur ) );
   while( DbiGetNextRecord( hCur, dbiNOLOCK, @LD, nil ) = DBIERR_NONE ) do
     if( StrIComp( LD.szDesc, PChar( cLangDesc ) ) = 0 ) then
       begin
         result := String( LD.szName );
         break;
       end;
 finally
   Check( DbiCloseCursor( hCur ) );
 end;
end;
procedure TfrmSelectDB.FormCreate( Sender: TObject );
var
 LD: LDDesc;
 hCur: hDbiCur;
begin
 Session.GetDriverNames( cbxDBDriver.Items );
 try
   Check( DbiOpenLdList( hCur ) );
   while( DbiGetNextRecord( hCur, dbiNOLOCK, @LD, nil ) = DBIERR_NONE ) do
     cbxLangDriver.Items.Add( String( LD.szDesc ) );
 finally
   Check( DbiCloseCursor( hCur ) );
 end;
end;


 
Arrows ©   (2005-11-21 19:03) [4]

Все разовбрался, нужно было в писать

"LANGDRIVER=db866ru0"

а не  "LANGDRIVER=dBASE RUS cp866"

Desdechado    Спасибо за ответы и советы.



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

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

Наверх




Память: 0.48 MB
Время: 0.033 c
14-1134830371
Nic
2005-12-17 17:39
2006.01.15
Воскрешаю старый проект :)


2-1135679758
dd
2005-12-27 13:35
2006.01.15
присвоение данных из одной таблицы в другую


3-1132477945
AversFm
2005-11-20 12:12
2006.01.15
Реализация Master Detail для TOracleDataSet


3-1132123711
Карелин Артем
2005-11-16 09:48
2006.01.15
Получение всех FK в базе MS SQL 2000.


3-1129099929
S@shka
2005-10-12 10:52
2006.01.15
Репликация FB + Delphi.... Варианты исполнения