Я программировал, вроде все было хорошо, таблица сохранялась, и тут, БАХ, вылазит ошибка
Места на диске полно.
Вроде, с кодом все в порядке.
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, dbf, db, FileUtil, RTTIGrids, PrintersDlgs, Forms,
Controls, Graphics, Dialogs, StdCtrls, DBGrids, Buttons, ExtCtrls, DbCtrls,dbf_common;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Admin: TBitBtn;
BitBtn2: TBitBtn;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
Table: TDBGrid;
Doctavka: TDbf;
PrintDialog1: TPrintDialog;
procedure AdminClick(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
if FileExists('baza.dbf') then
begin
With Doctavka do
begin
Close;
TableName:=('baza.dbf');
Open;
end;
end
else begin
Doctavka.TableName:=('baza.dbf');
Doctavka.TableLevel:=7;
With Doctavka.FieldDefs do
begin
Add ( 'ГОТОВНОСТЬ' , ftBoolean , 10 , True ) ;
Add ( 'ИНФОРМ. О КЛИЕНТЕ АДРЕС ИМЯ ТЕЛЕФОН' , ftString , 40 , True ) ;
Add ( 'СУП+ВТОРОЕ' , ftInteger , 32 , True ) ;
Add ( 'САЛАТ+ВТОРОЕ' , ftInteger , 32 , True ) ;
Add ( 'ПОЛНЫЙ ОБЕД' , ftInteger, 32 , True ) ;
Add ( 'СУП+САЛАТ' , ftInteger , 32 , True ) ;
Add ( 'ВТОРОЕ' , ftInteger , 32 , True ) ;
Add ( 'КОММЕНТАРИЙ' , ftString , 40 , True ) ;
Add('ВОДИТЕЛЬ',ftString , 32 , True );
Add ( 'СУММА ЗАКАЗА' , ftInteger , 40 , True ) ;
end;
Doctavka.CreateTable;
ShowMessage('Пожалуйста, перезагрузите приложение!');
end;
DataSource1.AutoEdit:=True;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Doctavka.Close;
end;
procedure TForm1.AdminClick(Sender: TObject);
begin
Doctavka.ReadOnly:=False;
DBNavigator1.Visible:=True;
end;
end.
Добавлено спустя 1 час 50 минут 10 секунд:
Я проблему обошел, используя TSdfDataSet.