Форум: "Базы";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c