Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];

Вниз

Кодировка таблицы в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
3-14942
RomZm
2002-12-13 14:22
2003.01.06
Реализация MultiSelect в DBGrid


1-15040
alex134
2002-12-24 23:56
2003.01.06
DLL


1-15098
PVOzerski
2002-12-22 12:09
2003.01.06
Есть ли резон привлекать DirectX?


14-15298
denisac
2002-12-11 07:47
2003.01.06
Rock 4EVER!!!


14-15256
VictorT
2002-10-25 20:20
2003.01.06
Халявный хостинг





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский