Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 49

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » BDE

Использование 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.
Категория: BDE | Добавил: Skinner (05.07.2008)
Просмотров: 410 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz