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

Вниз

Кодировка таблицы в BDE   Найти похожие ветки 

 
Stas   (2002-12-13 11:43) [0]

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


 
MsGuns ©   (2002-12-13 13:38) [1]

Вопрос, а зачем ? ИМХО, проще переписать данные из таблицы БД с одной кодировкой в таблицу БД с другой.


 
Stas   (2002-12-13 14:00) [2]

Строки написанные русским языком в Paradox 3.0 отображаються неправильно, даже если их перенести в таблицу с другой кодировкой, а вот если изменить кодировку таблицы в Database desktop, то данные будут отображаться правильно.


 
Anatoly Podgoretsky ©   (2002-12-13 14:08) [3]

Ну так измени в Database desktop, чего мучаешься, или изучай dbiDoStructure, но тогда тебе не позавидуешь


 
sniknik ©   (2002-12-13 14:31) [4]

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;

//вызов
ChangeLangDriver("D:\", "Test.Db", "cyrr")


но Paradox 3.0? действительно? мне казалось что в старом формате не прописывается драйвер. в общем попробуй может получится.


 
Stas   (2002-12-13 14:33) [5]

В десктопе не очень удобно изменять, а вот dbiDoStructure это можно, только есть по нему какое нибудь описание на русском, а тоя в bde32.hlp ничего не понял.


 
Stas   (2002-12-13 14:36) [6]

Спасибо sniknik. Буду пробовать.


 
Stas   (2002-12-13 14:40) [7]

Sniknik, Все отлично работает Спасибо !!!



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
14-15264
RV
2002-12-17 10:34
2003.01.06
Эспорт в Ексель идет не всегда. В чем м/б дело?


1-15113
vicheslav
2002-12-22 14:53
2003.01.06
Excel как можно получить выделеный диапазон?


1-15142
Micah'GF
2002-12-23 17:55
2003.01.06
Связь между юнитами


14-15312
borlandcpp
2002-12-18 12:28
2003.01.06
Plese help me now!


1-15054
slyfox
2002-12-25 06:42
2003.01.06
Проблемка с ZReport