Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Создание таблицы с автоинкрементальным полем

Delphi , Базы данных , Таблицы

Создание таблицы с автоинкрементальным полем

Допустим у вас имеется форма с кнопкой. Щелчок на кнопке с помощью DbiCreateTable должен создать таблицу Paradox с автоинкрементальным (приращиваемым) полем.


unit Autoinc;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, DBTables, DB, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,
  DbiTypes, DbiErrs, DBIProcs;

const
  szTblName = 'CR8PXTBL'; { Имя создаваемой таблицы. }
  szTblType = szPARADOX; { Используемый тип таблицы. }

  { При создании таблицы используется полное описание поля }
const
  fldDes: array[0..1] of FLDDesc = (
    ({ Поле 1 - AUTOINC }
    iFldNum: 1; { Номер поля }
    szName: 'AUTOINC'; { Имя поля }
    iFldType: fldINT32; { Тип поля }
    iSubType: fldstAUTOINC; { Подтип поля }
    iUnits1: 0; { Размер поля }
    iUnits2: 0; { Десятичный порядок следования ( 0 ) }
    iOffset: 0; { Смещение в записи     ( 0 ) }
    iLen: 0; { Длина в байтах        ( 0 ) }
    iNullOffset: 0; { Для Null-битов        ( 0 ) }
    efldvVchk: fldvNOCHECKS; { Проверка корректности ( 0 ) }
    efldrRights: fldrREADWRITE { Права }
    ),
    ({ Поле 2 - ALPHA }
    iFldNum: 2; szName: 'ALPHA';
    iFldType: fldZSTRING; iSubType: fldUNKNOWN;
    iUnits1: 10; iUnits2: 0;
    iOffset: 0; iLen: 0;
    iNullOffset: 0; efldvVchk: fldvNOCHECKS;
    efldrRights: fldrREADWRITE
    ));

type
  TForm1 = class(TForm)
    Button1: TButton;
    Database1: TDatabase;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  TblDesc: CRTblDesc;
  uNumFields: Integer;
  Rslt: DbiResult;
  ErrorString: array[0..dbiMaxMsgLen] of Char;
begin
  FillChar(TblDesc, sizeof(CRTblDesc), #0);
  lStrCpy(TblDesc.szTblName, szTblName);
  lStrCpy(TblDesc.szTblType, szTblType);
  uNumFields := trunc(sizeof(fldDes) / sizeof(fldDes[0]));
  TblDesc.iFldCount := uNumFields;
  TblDesc.pfldDesc := @fldDes;

  Rslt := DbiCreateTable(Database1.Handle, TRUE, TblDesc);
  if Rslt <> dbiErr_None then
  begin
    DbiGetErrorString(Rslt, ErrorString);
    MessageDlg(StrPas(ErrorString), mtWarning, [mbOk], 0);
  end;
end;

end.

Статья Создание таблицы с автоинкрементальным полем раздела Базы данных Таблицы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Таблицы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
23.04.2024 15:21:15/0.0067160129547119/0