Использование API BDE для удаления записей
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, BDE, ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables, Buttons;
type
TMainForm = class (TForm)
AliasesList: TComboBox;
TablesList: TComboBox;
EmptyBtn: TBitBtn;
Label1: TLabel;
Label2: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure AliasesListChange(Sender: TObject);
procedure EmptyBtnClick(Sender: TObject);
private
hDB: hDBIDB;
hCursor: hDBICur;
DBDesc: DBDesc;
TblDesc: TBLBaseDesc;
public
{ Public declarations }
end ;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.FormShow(Sender: TObject);
var Rslt: DBIResult;
begin
AliasesList.Items.Clear;
TablesList.Items.Clear;
hDB := nil ;
try
DbiInit(nil ); // Инициализация BDE
DbiOpenDatabaseList(hCursor);
repeat
Rslt := DbiGetNextRecord(hCursor, dbiNOLOCK, @DBDesc, nil );
if (Rslt <> DBIERR_EOF) then AliasesList.Items.Add(StrPas(DBDesc.szName));
until (rslt <> DBIERR_NONE);
DbiCloseCursor(hCursor);
except
on E: EDBEngineError do ShowMessage("Ошибка инициализации BDE");
end ;
end ;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
finally
if hDB <> nil then DbiCloseDatabase(hDB); // Закрытие базы данных
DbiExit; // Закрытие сеанса работы с BDE
end
end ;
procedure TMainForm.AliasesListChange(Sender: TObject);
begin
try
if hDB <> nil
then DbiCloseDatabase(hDB); // Закрытие базы данных
DbiOpenDatabase // Открытие базы данных
(
PChar(AliasesList.Text), // Псевдоним базы данных
nil , // Тип базы данных
dbiReadWrite, // Режим редактирования данных
dbiOpenShared, // Режим разделения данных
nil , // Пароль
0, // Число дополнительных параметров
nil , // Перечень полей для доп. параметров
nil , // Список доп. параметров
hDB // Дескриптор базы данных
);
DbiSetPrivateDir("c:\temp"); // Определение временного каталога
DbiOpenTableList(hDb, False, False, "*.DB", hCursor);
TablesList.Items.Clear;
TablesList.Clear;
while DbiGetNextRecord(hCursor, dbiNOLOCK, @TblDesc, nil ) = dbiErr_None
do TablesList.Items.Add(TblDesc.szName);
DbiCloseCursor(hCursor);
except
on E: EDBEngineError do ShowMessage("Ошибка открытия базы данных");
end ;
end ;
procedure TMainForm.EmptyBtnClick(Sender: TObject);
begin
try
DbiEmptyTable(hDB, nil , PChar(TablesList.Text), "");
except
on E: EDBEngineError do ShowMessage("Неверно задана таблица");
end ;
end ;
end .
Скачать весь проект
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Использование API BDE для удаления записей", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:
Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи , в сообщение обязательно указывайте название или ссылку на статью!