我会不会太贪了?数据库显示连接问题 (50分)

  • 主题发起人 主题发起人 redwood
  • 开始时间 开始时间
R

redwood

Unregistered / Unconfirmed
GUEST, unregistred user!
我有5个只有一个字段的库,于是只想用一个form来进行操作。
但是在设置好后发现,不停的切换连接后,会出现连接错误(前几次操作不会出现):
打开一个库的连接,会显示dbedit找不到前一个表的字段
这是为什么?
代码 打开:
procedure TForm_main.U1Click(Sender: TObject);
begin
Form_Other.All_id:=1;
Form_Other.DBEdit1.DataSource:=DM1.DS_user;
Form_Other.DBEdit2.DataSource:=DM1.DS_user;
Form_Other.DBEdit1.DataField:='用户名';
Form_Other.DBEdit2.DataField:='密码';
DM1.Table_user.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.C1Click(Sender: TObject);
begin
Form_Other.All_id:=2;
Form_Other.DBEdit1.DataSource:=DM1.DS_color;
Form_Other.DBEdit1.DataField:='车身颜色';
DM1.Table_color.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.J1Click(Sender: TObject);
begin
Form_Other.All_id:=3;
Form_Other.DBEdit1.DataSource:=DM1.DS_jianyan;
Form_Other.DBEdit1.DataField:='检验员';
DM1.Table_jianyan.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.T1Click(Sender: TObject);
begin
Form_Other.All_id:=4;
Form_Other.DBEdit1.DataSource:=DM1.DS_tryer;
Form_Other.DBEdit1.DataField:='姓名';
DM1.Table_tryer.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.X1Click(Sender: TObject);
begin
Form_Other.All_id:=5;
Form_Other.DBEdit1.DataSource:=DM1.DS_fujia;
Form_Other.DBEdit1.DataField:='名称';
DM1.Table_fujia.Active:=True;
Form_Other.Show;
end;

代码 操作窗口关闭:
procedure TForm_Other.BitBtn_EXITClick(Sender: TObject);
begin
Close;
Case All_id of
1:DM1.Table_user.Active:=False;
2:DM1.Table_color.Active:=False;
3:DM1.Table_jianyan.Active:=False;
4:DM1.Table_tryer.Active:=False;
5:DM1.Table_fujia.Active:=False;
end;
Form_Other.DBEdit1.DataField:='';
end;

 
切换之前先要将其它数据源关闭或者先断开与DBEDIT1的连接。
 
有关闭呀!就在后边
主要问题是在重复操作后会出现错误,显示没找到前一次操作的字段名
 
procedure TForm_main.U1Click(Sender: TObject);
begin
Form_Other.All_id:=1;
Form_Other.DBEdit1.DataSource:=DM1.DS_user;
Form_Other.DBEdit2.DataSource:=DM1.DS_user;
Form_Other.DBEdit1.DataField:='用户名';
Form_Other.DBEdit2.DataField:='密码';
DM1.Table_user.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.C1Click(Sender: TObject);
begin
Form_Other.All_id:=2;
Form_Other.DBEdit1.DataSource:=DM1.DS_color;
Form_Other.DBEdit1.DataField:='车身颜色';
//加上
Form_Other.DBEdit2.DataSource:=nil;
Form_Other.DBEdit2.DataField:='';

DM1.Table_color.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.J1Click(Sender: TObject);
begin
Form_Other.All_id:=3;
Form_Other.DBEdit1.DataSource:=DM1.DS_jianyan;
Form_Other.DBEdit1.DataField:='检验员';

Form_Other.DBEdit2.DataSource:=nil;
Form_Other.DBEdit2.DataField:='';
DM1.Table_jianyan.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.T1Click(Sender: TObject);
begin
Form_Other.All_id:=4;
Form_Other.DBEdit1.DataSource:=DM1.DS_tryer;
Form_Other.DBEdit1.DataField:='姓名';

Form_Other.DBEdit2.DataSource:=nil;
Form_Other.DBEdit2.DataField:='';

DM1.Table_tryer.Active:=True;
Form_Other.Show;
end;

procedure TForm_main.X1Click(Sender: TObject);
begin
Form_Other.All_id:=5;
Form_Other.DBEdit1.DataSource:=DM1.DS_fujia;
Form_Other.DBEdit1.DataField:='名称';

Form_Other.DBEdit2.DataSource:=nil;
Form_Other.DBEdit2.DataField:='';

DM1.Table_fujia.Active:=True;
Form_Other.Show;
end;
 
未能解决…………
错误显示的是DBEDIT1没有找到字段

并且在关闭中加上
DBEdit1.DataSource:=nil;
DBEdit1.DataField:='';
DBEdit2.DataSource:=nil;
DBEdit2.DataField:='';
依然会出现,找不到DBEDIT1前一字段的错误
 
该死的delphi

我去掉打开和关闭中的
DBEdit1.DataSource:=nil;
DBEdit2.DataSource:=nil;
DBEdit1.DataField:='';
DBEdit2.DataField:='';
在onclose中添加相同字段,问题解决…………
郁闷+想不通

 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部