Delphi7+ADOTable+Access2000
在ADOTable的AfterScroll事件中给Edit控件赋值,希望可以在Edit控件中显示当前记录,但是在添加记录时却出错:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '字段 '表2.学号' 不能是零长度的字符串。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
该表只有三个字段,学号(文本类型)、姓名(文本类型)、备注(备注类型),其中学号为主键。
如何解决,是否有其他办法,实现这个简单功能?
在ADOTable的AfterScroll事件中给Edit控件赋值,希望可以在Edit控件中显示当前记录,但是在添加记录时却出错:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '字段 '表2.学号' 不能是零长度的字符串。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
该表只有三个字段,学号(文本类型)、姓名(文本类型)、备注(备注类型),其中学号为主键。
如何解决,是否有其他办法,实现这个简单功能?
解决方案 »
- Delphi调用java开发的WebService,传入参数出差,求救
- CppWebBrowser两问题,高分送上
- ClientDataSet.Filter := 'F_ID like ' + QuotedStr('%玉%');为何不行
- 请问如何加载第三方控件!!我下载了xpmenu3.1不知如何加载!!
- 高难的问题:请问如何截获网上证券行情软件的数据?
- 如何得到QQ发送消息窗口里,RICHEDIT的句柄?
- TTable的过滤问题?很难!
- 如何用Delphi写一个计算某文件夹大小的程序? 急急!! 绝对给多分
- 一个读取最大值的问题(Delphi+Ado+Oracle)在线等候
- Delphi如何将excel中的数据快速的存进SQLite的数据库
- delphi6中用什么控件能显示一数据表中的数据,但有要求(见内容)
- 用adoquery查找到的记录的排序怎样的,怎样能够引用其中的一个记录呢
ADoTable.Insert;
ADoTable.AfterScroll := ADOTableAfterScroll;
SetDate;
Post;
begin
Edit1.Text:=ADOTable1.FieldByName('学号').AsString;
Edit2.Text:=ADOTable1.FieldByName('姓名').AsString;
Memo1.Text:=ADOTable1.FieldByName('备注').asString;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.Append;
ADOTable1.FieldByName('学号').AsString:=Edit1.Text;
ADOTable1.FieldByName('姓名').AsString:=Edit2.Text;
ADOTable1.FieldByName('备注').AsString:=Memo1.Text;
ADOTable1.Post;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:=ADOTable1.FieldByName('学号').AsString;
Edit2.Text:=ADOTable1.FieldByName('姓名').AsString;
Memo1.Text:=ADOTable1.FieldByName('备注').asString;
end;
procedure TForm1.ADOTable1AfterPost(DataSet: TDataSet);
begin
Edit1.Text:=ADOTable1.FieldByName('学号').AsString;
Edit2.Text:=ADOTable1.FieldByName('姓名').AsString;
Memo1.Text:=ADOTable1.FieldByName('备注').asString;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTABLE1。DISENABLE;
ADOTable1.Append;
ADOTable1.FieldByName('学号').AsString:=Edit1.Text;
ADOTable1.FieldByName('姓名').AsString:=Edit2.Text;
ADOTable1.FieldByName('备注').AsString:=Memo1.Text;
ADOTable1.Post;
ADDTABLE1。ENABLE;{应该有一对这样属性我记不清,我在网吧上网,不能在机上操作一 下。错了不要见怪}
end;
begin
Edit1.Text:=ADOTable1.FieldByName('学号').AsString;
Edit2.Text:=ADOTable1.FieldByName('姓名').AsString;
Memo1.Text:=ADOTable1.FieldByName('备注').asString;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.Append;
ADOTable1.FieldByName('学号').AsString:=Edit1.Text;//确定Edit1/Edit2/Memo1都不为空
ADOTable1.FieldByName('姓名').AsString:=Edit2.Text;
ADOTable1.FieldByName('备注').AsString:=Memo1.Text;
ADOTable1.Post;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:=ADOTable1.FieldByName('学号').AsString;
Edit2.Text:=ADOTable1.FieldByName('姓名').AsString;
Memo1.Text:=ADOTable1.FieldByName('备注').asString;
end;
procedure TForm1.ADOTable1AfterPost(DataSet: TDataSet);
begin
Edit1.Text:=ADOTable1.FieldByName('学号').AsString;
Edit2.Text:=ADOTable1.FieldByName('姓名').AsString;
Memo1.Text:=ADOTable1.FieldByName('备注').asString;
end;
----------------
沉沦中..........
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EDatabaseError with message 'ADOTable1: Cannot perform this operation on a closed dataset'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help 只是在加入处理ADOTable1AfterScroll之后,才出问题的。---------------------------
打开你的MDB文件。进入设计视图
将表2的学号字段
下面的属性“是否允许为空字符串”改成“是”。希望能解决你的问题。
一般来说,如果是ACCESS的数据库,
那么文本型字段的这一项一般设为“是”,否则容易异常。
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '字段 '表2.学号' 不能是零长度的字符串。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
实在不行,我就添加和浏览数据分开,烦