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.
|