Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Paradox [D6, Paradox]


DedMoroz ©   (2003-05-18 21:44:00) 

Здравствуйте!
При сохранении графического изображения в Paradoxe вес (размер) таблиц соответственно увеличивается, а вот после удаления данных почемуто не уменьшается. В чём дело? Или объясните, может я чего не знаю про эти таблицы?.. Спасибо.


Dimaz-z   (2003-05-20 16:27:00) [1]

А ты попробуй с кириллицей!!! Путь прописывается динамически.


DedMoroz   (2003-05-20 13:39:00) [2]

А путь к базе прописывается динамически или на этапе программирования?.. Вообще я сталкивался только с проблемой отображения данных в кирилице, но это решается простой установкой русскоязычного языкового драйвера в таблицах на этапе их создания, что касаемо путей доступа к базе то я всегда использовал латиницу поэтому проблемм не возникало.


Dimaz-z   (2003-05-19 22:06:00) [3]

При пути к базе с кириллическими символами, вместо кириллицы появляются беспорядочные символы (если путь состоит только из английских символов, то всё в порядке)! Из-за этого процедура не работает! Как быть?


DedMoroz   (2003-05-19 18:43:00) [4]

Всем большое спасибо! Попробую Ваши предложения.


sniknik   (2003-05-19 12:50:00) [5]

можно и не архиватором

попробуй такую процедуру
procedure TDatMod.PackTable(Table: TTable);
var
Props: CURProps;
hDb: hDBIDb;
TableDesc: CRTblDesc;
begin
if not Table.Active then raise EDatabaseError.Create("Table must be opened to pack");
if not Table.Exclusive then raise EDatabaseError.Create("Table must be opened exclusively to pack");
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szPARADOX) then begin
FillChar(TableDesc, sizeof(TableDesc), 0);
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
StrPCopy(TableDesc.szTblName, Table.TableName);
StrPCopy(TableDesc.szTblType, Props.szTableType);
TableDesc.bPack := True;
Table.Close;
Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False));
end else
if (Props.szTableType = szDBASE) then Check(DbiPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True))
else raise EDatabaseError.Create("Table must be either of Paradox or dBASE type to pack");
Table.Open;
end;


вызов
if DatMod.Table1.Active then DatMod.PackTable(DatMod.Table1);


Mike Kouzmine   (2003-05-19 11:49:00) [6]

Можно и архиватором. Было бы желание.


Rocker   (2003-05-19 11:45:00) [7]

Чем, архиватором?
Я из-за этой шняги пересоздаю таблицы.


Rol   (2003-05-19 08:15:00) [8]

Реально, данные не удаляются, а помечаются, как удалённые. Пакуй таблицы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо