Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка при сохранени "Table1: DataSet not in edit or insert mode" [D7, Paradox]


RagapuK ©   (2006-08-30 23:06:00) 


unit t1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
DBNavigator1: TDBNavigator;
Table1: TTable;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
table1.Active:=false;
table1.TableName:=opendialog1.FileName;
table1.Active:=true;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
table1.Post;
table1.Active:=true;
savedialog1.FileName:=table1.TableName;
savedialog1.Execute;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
table1.ReadOnly:=false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
table1.RecNo:=2;
table1.Edit;
table1.FieldByName('Name').AsString:='AAAAAAAAAA';
end;

end.


Хочу сохранить таблицу после модификации...
Если я изменял таблицу вручную, то все ОК, а если программно, то вылазиет ошибка

"Table1: DataSet not in edit or insert mode"....

А сохранение у меня делается так:

table1.Post;
table1.Active:=true;
savedialog1.FileName:=table1.TableName;
savedialog1.Execute;

Help me, please...


RagapuK   (2006-09-03 19:15:00) [1]

Спасибо!!!


dolmat   (2006-08-31 09:28:00) [2]


> table1.Post;
> table1.Active:=true;
> savedialog1.FileName:=table1.TableName;
> savedialog1.Execute;

изврат полнейший!
table1.Post выполняется только для открытой для редактирования записи. Если таковой нет тогда ошибка.
изменить надо так
if table1.state in [dsedit, dsinsert] then  table1.Post;


Наверх

Титульная страница Поиск, карта сайта Написать письмо