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 thenbeginDbiGetErrorString(Rslt, ErrorString);MessageDlg(StrPas(ErrorString),mtWarning,[mbOk],0);end; end; end. |
[000463]