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

Вниз

Настройки в BDE   Найти похожие ветки 

 
gedd ©   (2003-05-17 17:56) [0]

Кто знает как определить в BDE в Native параметр LangDriver для DBASE таблиц.


 
sniknik ©   (2003-05-17 18:25) [1]

проще всего в BDE администраторе посмотреть

если програмно, открой справку (у меня)
D:\Program Files\Common Files\Borland Shared\BDE\BDE32.HLP

набери в поиске LangDriver, там будет всего 2 ссылки одна на список (туда не ходи :о) вторая на пример на дельфях на получение параметров из IDAPI.CFG в том числе и по LangDriver. (переносить его сюла смысла нет, и он длинный )


 
gedd ©   (2003-05-18 17:19) [2]

Круто, только help этот я давно почитал,
там есть как считать текущий langdriver
а вот как его установить, то бишь установить
тот что нужен мне - этого нету.
Вопрос остается открытым.


 
sniknik ©   (2003-05-18 17:36) [3]

gedd © (17.05.03 17:56)
... определить ...
gedd © (18.05.03 17:19)
... как считать ....
определить=как считать (по моему)

> а вот как его установить
а вот это другой вопрос, яснее надо вопросы ставить (отвечают на слова а не на точто ты под этим подразумевал)

процедура устанавливает для таблиц dBase/Paradox, чтобы в IDAPI.CFG сохранилось, надо сессию сохранить (смотреть где и править под тебя неохота, сам смотри)
procedure ChangeLangDriver(DatabaseName, TableName, LDName: string);
var
TblExt: string;
Database: TDatabase;
TblDesc: CRTblDesc;
OptDesc: FLDDesc;
OptData: array [0..250] of Char;
Cur: hDBICur;
Rec: CFGDesc;
begin
if (TableName="") or (LDName="") then raise Exception.Create("Unknown TableName or LDName");
Database:=Session.OpenDatabase(DatabaseName);
try
if Database.IsSQLBased then raise Exception.Create("Function ChangeLangDriver working only with dBase or Paradox tables");
FillChar(OptDesc, SizeOf(OptDesc), #0);
FillChar(TblDesc, SizeOf(TblDesc), #0);
StrCopy(OptDesc.szName, "LANGDRIVER");
OptDesc.iLen:=Length(LDName)+1;
with TblDesc do begin
StrPCopy(szTblName, TableName);
TblExt:=UpperCase(ExtractFileExt(TableName));
if TblExt=".DBF" then StrCopy(szTblType, szDbase)
else if TblExt=".DB" then StrCopy(szTblType, szParadox)
else begin
AnsiToOEM(StrPCopy(OptData, DatabaseName), OptData);
if DbiOpenCfgInfoList(nil, dbiREADONLY, cfgPersistent, StrPCopy(OptData, "\DATABASES\"+StrPas(OptData)+"\DB INFO\"),Cur)<>DBIERR_NONE
then raise Exception.Create("Unknown table type");
try
while DbiGetNextRecord(Cur, dbiNOLOCK, @Rec, nil)<>DBIERR_EOF do
if StrComp(Rec.szNodeName, "DEFAULT DRIVER")=0 then begin
StrCopy(szTblType, Rec.szValue);
Break;
end;
finally
Check(DbiCloseCursor(Cur));
end;
end;
iOptParams:=1;
pfldOptParams:=@OptDesc;
pOptData:=@OptData;
end;
StrPCopy(OptData, LDName);
Check(DbiDoRestructure(Database.Handle, 1, @TblDesc, nil,nil, nil, False));
finally
Session.CloseDatabase(Database);
end;
end;


 
sniknik ©   (2003-05-18 17:57) [4]

ладно а то не очень понятно будет (там всетаки у таблиц). изменить у текущей сессии (в памяти), и если хочеш оставить нужно сохранить.
List:= TStringList.Create;
List.Add ("LANGDRIVER=db866ru0");
Session.ModifyDriver("DBASE",List);
List.Free;



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
1-13183
Top Gun
2003-05-24 11:41
2003.06.05
Исключение в Finalization


9-12990
The_Vizit00r
2002-12-27 13:03
2003.06.05
Народ подскажите, где найти исходник


3-12998
Аноним
2003-05-19 01:00
2003.06.05
Кэширование изменений


1-13132
grusty
2003-05-24 17:16
2003.06.05
Как создать директорию?


3-13080
edst
2003-05-15 16:59
2003.06.05
Как написать программу (Client/Server) для распределенного редакт