我是初学delphi数据库请问专家门几个问题。我是按书上的例子做的程序为什么运行的时候总是不成功!以下是我添加,删除,修改的源代码。请专家帮我分析一下。修改:procedure TForm2.BitBtn2Click(Sender: TObject);
begin
with Form2DataModule.studentTable do
begin
if SpinEdit1.Text='' then
begin
ShowMessage('请输入学号:');
SpinEdit1.SetFocus;
exit;
end;
if not Locate('学号',VarArrayof([SpinEdit1.text]),[LopartialKey]) then
begin
ShowMessage('无此记录不能修改!');
exit;
end;
Edit;
FieldByName('姓名').AsString:=Edit1.Text;
FieldByName('学号').AsString:=SpinEdit1.Text;
FieldByName('性别').AsString:=Edit2.Text;
FieldByName('年龄').AsString:=Edit3.Text;
FieldByName('入学时间').AsDateTime:=DateTimePicker1.Date;
Post;
ShowMessage('修改成功!');
end;end;
添加:
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
with Form2DataModule.studentTable do
begin
if ((SpinEdit1.Text<>'') and (Edit1.Text<>'')) then
begin
if Locate('学号',VarArrayof([SpinEdit1.text]),[LopartialKey])
then begin
ShowMessage('此学生已存在!');
exit;
end;
try
Append;
FieldByName('姓名').AsString:=Edit1.Text;
FieldByName('学号').AsString:=SpinEdit1.Text;
FieldByName('性别').AsString:=Edit2.Text;
FieldByName('年龄').AsString:=Edit3.Text;
FieldByName('入学时间').AsDateTime:=DateTimePicker1.Date;
Post;
ShowMessage('添加成功!');
except
begin
Active:=false;
ShowMessage('输入学号的范围应在:10000000-19999999之间!');
Active:=true;
exit;
end;
end;
end else ShowMessage('');
end; //With do
end;
删除:
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
With Form2DataModule.studentTable do
begin
if Locate('学号',VarArrayof([SpinEdit1.Text]),[LopartialKey])
then begin
Delete;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
ShowMessage('删除成功');
end else ShowMessage('无此记录!');
end;
end;下面是SpinEdit几个事件的添加完整性程序:
procedure TForm2.SpinEdit1Change(Sender: TObject);
begin
Form2.SpinEdit1Exit(sender);
end;procedure TForm2.SpinEdit1Exit(Sender: TObject);
begin
if (length(SpinEdit1.Text)<>8)then
begin
ShowMessage('请输入8个字符!');
SpinEdit1.SetFocus;
exit;
end;
with Form2DataModule.studentTable do
begin
if Locate('学号',VarArrayof([SpinEdit1.text]),[LopartialKey]) then
begin
Edit1.Text:=FieldByName('姓名').AsString;
SpinEdit1.Text:=FieldByName('学号').AsString;
Edit2.Text:=FieldByName('性别').AsString;
Edit3.Text:=FieldByName('年龄').AsString;
DateTimePicker1.Date:=FieldByName('入学时间').AsDateTime;
end else
begin
Edit1.text:='';
Edit2.text:='';
Edit3.text:='';
end;
end;
end;procedure TForm2.SpinEdit1KeyPress(Sender: TObject; var Key: Char);begin
if key=#13 then
Form2.SpinEdit1Exit(Sender);
end;
end.谢谢各位专家帮帮忙!
begin
with Form2DataModule.studentTable do
begin
if SpinEdit1.Text='' then
begin
ShowMessage('请输入学号:');
SpinEdit1.SetFocus;
exit;
end;
if not Locate('学号',VarArrayof([SpinEdit1.text]),[LopartialKey]) then
begin
ShowMessage('无此记录不能修改!');
exit;
end;
Edit;
FieldByName('姓名').AsString:=Edit1.Text;
FieldByName('学号').AsString:=SpinEdit1.Text;
FieldByName('性别').AsString:=Edit2.Text;
FieldByName('年龄').AsString:=Edit3.Text;
FieldByName('入学时间').AsDateTime:=DateTimePicker1.Date;
Post;
ShowMessage('修改成功!');
end;end;
添加:
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
with Form2DataModule.studentTable do
begin
if ((SpinEdit1.Text<>'') and (Edit1.Text<>'')) then
begin
if Locate('学号',VarArrayof([SpinEdit1.text]),[LopartialKey])
then begin
ShowMessage('此学生已存在!');
exit;
end;
try
Append;
FieldByName('姓名').AsString:=Edit1.Text;
FieldByName('学号').AsString:=SpinEdit1.Text;
FieldByName('性别').AsString:=Edit2.Text;
FieldByName('年龄').AsString:=Edit3.Text;
FieldByName('入学时间').AsDateTime:=DateTimePicker1.Date;
Post;
ShowMessage('添加成功!');
except
begin
Active:=false;
ShowMessage('输入学号的范围应在:10000000-19999999之间!');
Active:=true;
exit;
end;
end;
end else ShowMessage('');
end; //With do
end;
删除:
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
With Form2DataModule.studentTable do
begin
if Locate('学号',VarArrayof([SpinEdit1.Text]),[LopartialKey])
then begin
Delete;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
ShowMessage('删除成功');
end else ShowMessage('无此记录!');
end;
end;下面是SpinEdit几个事件的添加完整性程序:
procedure TForm2.SpinEdit1Change(Sender: TObject);
begin
Form2.SpinEdit1Exit(sender);
end;procedure TForm2.SpinEdit1Exit(Sender: TObject);
begin
if (length(SpinEdit1.Text)<>8)then
begin
ShowMessage('请输入8个字符!');
SpinEdit1.SetFocus;
exit;
end;
with Form2DataModule.studentTable do
begin
if Locate('学号',VarArrayof([SpinEdit1.text]),[LopartialKey]) then
begin
Edit1.Text:=FieldByName('姓名').AsString;
SpinEdit1.Text:=FieldByName('学号').AsString;
Edit2.Text:=FieldByName('性别').AsString;
Edit3.Text:=FieldByName('年龄').AsString;
DateTimePicker1.Date:=FieldByName('入学时间').AsDateTime;
end else
begin
Edit1.text:='';
Edit2.text:='';
Edit3.text:='';
end;
end;
end;procedure TForm2.SpinEdit1KeyPress(Sender: TObject; var Key: Char);begin
if key=#13 then
Form2.SpinEdit1Exit(Sender);
end;
end.谢谢各位专家帮帮忙!
是不是我的学生库里面建的人数太少了!
有问题请发信息到我的E-mail:[email protected]