PDA

View Full Version : تغییر table lanuage جدول های paradox از طریق کد نویسی



fahimi
سه شنبه 15 مهر 1382, 04:35 صبح
با سلام
وقتی که از طریق کد نویسی جدولی را ایجاد می شود متاسفانه Table Laguage آن pdox'ascii'japan می باشد که نمایش مقادیر فارسی مانند dbgridو سایر کنترل ها بصورت صحیح نمی باشد برای صیح نشان دادن مقادیر فیلد های بایستی Table Laguage جدول را 'ascii'ANSI را تبدیل کرد .اما این عمل را چگونه با کد نویسی می شود انجام داد.

SReza1
سه شنبه 15 مهر 1382, 22:00 عصر
Create Table "Test.db"
(
LastName char(20)
)

من منظورتو اگه فهمیده بشم میری با QUERY در داخل برنامه جدول میسازی
کد بالا رو من نوشتم مشکلی نداشت و LANGUAGE هم درست بودحالا نمی دونم منظورتو فهمیدم یا نه در ضمن اگه بری در bde میتونی LANGUAGE DRIVE رو عوض کنی بعد هر جدولی که میسازی اتوماتیک درست میشه به همون LANG که که میخواستی
در ضمن بگو از چه طریقی جدول رو میسازی؟؟ :?:

fahimi
جمعه 18 مهر 1382, 05:22 صبح
با سلام خدمت دوستان عزیز
با جستجو در اینتر نت تابع زیر را پیدا کردم که به خوبی عمل می کند

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');