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

Вниз

Упаковка dBAse таблиц   Найти похожие ветки 

 
NDR   (2002-07-30 08:57) [0]

УВАЖАЕМЫЕ МАСТЕРА!
Есть такая (ВАМ ВСЕМ ЗНАКОМАЯ) процедурка:

uses BDE,DB,DBTables

procedure Pack(RegenIndexes:Boolean);

procedure TForm1.Pack(RegenIndexes:Boolean);
const
SPackError="Таблица используется и неможет быть запакована";
begin
if not ((Active) and (Exclusive)) then
raise EDatabaseError.Create(SPackError);
try
Check(dbiPackTable(DBHandle,Handle,Nil,Nil,RegenIndexed));
finally
cursorposChanged;
refresh;
end;
end;

У меня дофига ошибок начиная от названия процедуры и до DBHandle!
Как правильно описать и использовать её????????Если есть другой пример пришлите пожалуйста. мне срочно нужен листинг позволяющий запаковывать таблицы dBase !


 
Leran2002   (2002-07-30 09:34) [1]

Вот может поможет…

uses BDE;

// Pack a Paradox or dBASE table
procedure 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;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Table1.Active then Table1.Close;
Table1.Exclusive:=true; // включаем эксклюзивный режим
Table1.Open; // таблица должна быть открыта
PackTable(Table1); // пакуем таблицу
Table1.Close;
Table1.Exclusive:=false; // выключаем эксклюзивный режим
Table1.Open;
end;


 
VAleksey   (2002-07-30 09:35) [2]

Еще добавь орфографическую ошибку :) "неможет" пишется раздельно, т.е. "не может" :).
В нелпе по функции упаковки таблиц полный листинг для dBase и Paradox. См. файл BDE32.hlp


 
Leran2002   (2002-07-30 09:37) [3]

VAleksey, я это тоже оттуды выцарапал ;-))...


 
Anatoly Podgoretsky   (2002-07-30 09:38) [4]

А правильный пример из хелпа никак не устраивает?


 
Leran2002   (2002-07-30 09:44) [5]

Ах да еще забыл сказать, что при открытом Дельфе это работать не будет, Дельф будет блокировать таблицу... Ну короче говоря выгружаешь Дельфя и запускаешь свою прогу... Ну и на всякий случай не забудь создать резервную копию таблицы, а то кто его знает ;-))...


 
NDR   (2002-07-30 16:09) [6]

ОГРОМНОЕ СПАСИБО !!! работает !



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

Форум: "Базы";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.045 c
1-60620
Relaxer
2002-08-08 14:33
2002.08.19
Хелп. Скролл


6-60784
ATLANTIDO
2002-05-19 13:35
2002.08.19
Сетевые папки


14-60859
Viewer
2002-07-23 16:13
2002.08.19
Особенности работы одной программы


1-60709
Tiger
2002-08-06 15:13
2002.08.19
Шифровка текста


1-60602
Doctor
2002-08-08 11:21
2002.08.19
Шрифты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский