скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Как создать таблицу базы данных, не используя Database Desktop 4




// Создание DBF-файла во время работы приложения

...
const

  CreateTab = 'CREATE TABLE ';
  IDXTab = 'PRIMARY KEY ';
  MyTabStruct =
    'IDX_TAB DECIMAL(6,0), ' +
    'DATE_ DATE, ' +
    'FLD_1 CHARACTER(20), ' +
    'FLD_2 DECIMAL(7,2), ' +
    'FLD_3 BOOLEAN, ' +
    'FLD_4 BLOB(1,1), ' +
    'FLD_5 BLOB(1,2), ' +
    'FLD_6 BLOB(1,3), ' +
    'FLD_7 BLOB(1,4), ' +
    'FLD_8 BLOB(1,5) ';
  ...

  // создание таблицы без индекса

procedure TForm1.Button1Click(Sender: TObject);
begin

  if CreateTable('"MYTAB.DBF"', MyTabStruct, '') then
    ...
      // выполняем дальнейшие операции

  else
    ...
end;

// создание таблицы с индексом

procedure TForm1.Button2Click(Sender: TObject);
begin

  if CreateTable('"MYTAB.DBF"', MyTabStruct, IDXTab + ' (IDX_TAB)') then
    ...
      // выполняем дальнейшие операции

  else
    ...
end;

function TForm1.CreateTable(TabName, TabStruct, TabIDX: string): boolean;
var

  qyTable: TQuery;
begin

  result := true;
  qyTable := TQuery.Create(Self);
  with qyTable do
  try
    try
      SQL.Clear;
      SQL.Add(CreateTab + TabName + '(' + TabStruct + TabIDX + ')');
      Prepare;
      // ExecSQL, а не Open. Иначе ... облом

      ExecSQL;
    except
      // Обработка ошибок открытия таблицы Возможности обработчика можно расширить.

      Exception.Create('Ошибка открытия таблицы');
      result := false;
    end;
  finally
    Close;
  end;
end;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook