تغییر table lanuage جدول های paradox از طریق کد نویسی
با سلام
وقتی که از طریق کد نویسی جدولی را ایجاد می شود متاسفانه Table Laguage آن pdox'ascii'japan می باشد که نمایش مقادیر فارسی مانند dbgridو سایر کنترل ها بصورت صحیح نمی باشد برای صیح نشان دادن مقادیر فیلد های بایستی Table Laguage جدول را 'ascii'ANSI را تبدیل کرد .اما این عمل را چگونه با کد نویسی می شود انجام داد.
عوض کردن table language پارادوکس
با سلام خدمت دوستان عزیز
با جستجو در اینتر نت تابع زیر را پیدا کردم که به خوبی عمل می کند
bde use
procedure SetLanguage(Tbl: TTable; Lang: DbiName);
var
pOptDesc: pFLDDesc;
pOptData: pBYTE;
hDb: hDbiDb;
TblDesc: CRTblDesc;
Dir: String;
begin
pOptDesc := AllocMem(sizeof(FLDDesc));
pOptData := AllocMem(20);
SetLength(Dir, dbiMaxNameLen + 1);
Tbl.Active := True;
Check(DbiGetDirectory(Tbl.DBHandle, False, PChar(Dir)));
SetLength(Dir, StrLen(PChar(Dir)));
try
FillChar(TblDesc, sizeof(CRTblDesc), #0);
Tbl.DisableControls;
Tbl.Close;
Check(DbiOpenDatabase(nil, nil, dbiReadWrite, dbiOpenExcl, nil, 0, nil, nil, hDb));
Check(DbiSetDirectory(hDb, PChar(Dir)));
pOptDesc.iOffset := 0;
pOptDesc.iLen := Length(Lang) + 1;
StrPCopy(pOptDesc.szName, 'LANGDRIVER');
StrPCopy(PChar(pOptData), Lang);
TblDesc.iOptParams := 1;
TblDesc.pfldOptParams := pOptDesc;
TblDesc.pOptData := pOptData;
StrPCopy(TblDesc.szTblName, Tbl.TableName);
StrCopy(TblDesc.szTblType, szParadox);
Check(DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, False));
finally
Check(DbiCloseDatabase(hDb));
FreeMem(pOptDesc, sizeof(FLDDesc));
FreeMem(pOptData, 20);
Tbl.EnableControls;
end;
end;
-------------------------------------------
SetLanguage(table1,'dbwinus0');