我以前请教了你一个问题,当时我按你的方法解决了问题,可现在我测试的时候又出现了新的问题?
http://topic.csdn.net/u/20090212/09/4859ebb2-4930-43c5-b876-048901d14919.html现在数据都写到了缓存里,我数据库中的‘工号’是主键,比如说我上一次输入一个数据库中已存在的工号名,,提示错误,然后我换成一个不存在的工号名,还是提示‘不能插入重复的值’
http://topic.csdn.net/u/20090212/09/4859ebb2-4930-43c5-b876-048901d14919.html现在数据都写到了缓存里,我数据库中的‘工号’是主键,比如说我上一次输入一个数据库中已存在的工号名,,提示错误,然后我换成一个不存在的工号名,还是提示‘不能插入重复的值’
unit addfor;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, DB, ADODB, Mask, Grids, DBGrids,
jpeg, ComCtrls, bsSkinCtrls, bsSkinBoxCtrls, bsdbctrls, bsSkinData;type
Taddform = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DBEdit1: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit8: TDBEdit;
DBRadioGroup1: TDBRadioGroup;
DBMemo1: TDBMemo;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
bsSkinDBComboBox1: TbsSkinDBComboBox;
bsSkinData1: TbsSkinData;
bsCompressedStoredSkin1: TbsCompressedStoredSkin;
bsSkinButton1: TbsSkinButton;
bsSkinButton2: TbsSkinButton; bsSkinButton4: TbsSkinButton;
bsSkinDBComboBox2: TbsSkinDBComboBox;
bsSkinDBComboBox3: TbsSkinDBComboBox;
bsSkinDBComboBox4: TbsSkinDBComboBox;
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bsSkinButton1Click(Sender: TObject);
procedure bsSkinButton2Click(Sender: TObject);
procedure bsSkinButton4Click(Sender: TObject); procedure DBEdit12Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
addform: Taddform;implementation{$R *.dfm}procedure Taddform.bsSkinButton1Click(Sender: TObject);
begin
dbedit1.Visible:=true;
dbedit8.Visible:=true;
dbradiogroup1.Visible:=true;
bsSkinDBComboBox1.Visible:=true;
bsSkinDBComboBox4.Visible:=true;
dbedit5.Visible:=true;
dbedit6.Visible:=true;
bsSkinDBComboBox2.Visible:=true;
bsSkinDBComboBox3.Visible:=true;
dbedit10.Visible:=true;
dbedit11.Visible:=true;
dbedit12.Visible:=true;
dbedit13.Visible:=true;
dbmemo1.Visible:=true;
bsSkinButton2.Visible:=true;
DateTimePicker1.Visible:=true;
DateTimePicker2.Visible:=true;
adoquery1.Insert;
dbedit1.SetFocus;
bsSkinButton2.Visible:=true;
end;procedure Taddform.bsSkinButton2Click(Sender: TObject);
begin
try
if AdoQuery1.state in [dsinsert,dsEdit] then
beginadoquery1.FieldByName('生日').AsDateTime:= DateTimePicker2.Date;
adoquery1.FieldByName('入职时间').AsDateTime:= DateTimePicker1.Date;adoquery1.post;
bsSkinButton1.Visible:=false;
end;
ADOQuery1.UpdateBatch();
except
raise;end;end;procedure Taddform.bsSkinButton4Click(Sender: TObject);
begin
bsSkinButton2.Visible:=false;addform.dbedit1.Visible:=false;
addform.dbedit8.Visible:=false;
addform.dbradiogroup1.Visible:=false;
addform.bsSkinDBComboBox1.Visible:=false;
addform.bsSkinDBComboBox4.Visible:=false;
addform.dbedit5.Visible:=false;
addform.dbedit6.Visible:=false;
addform.bsSkinDBComboBox2.Visible:=false;
addform.bsSkinDBComboBox3.Visible:=false;
addform.dbedit10.Visible:=false;
addform.dbedit11.Visible:=false;
addform.dbedit12.Visible:=false;
addform.dbedit13.Visible:=false;
addform.dbmemo1.Visible:=false;
addform.DateTimePicker1.Visible:=false;
addform.DateTimePicker2.Visible:=false;
close;
end;procedure Taddform.Button3Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 工资管理 where 工号='''+dbedit1.Text+'''');
adoquery1.open;
end;
procedure Taddform.FormCreate(Sender: TObject);var
loginstr:string;
beginloginstr:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ExtractFilePath(ParamStr(0)) +'人事管理系统.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:=loginstr;
ADOConnection1.Connected:=true;
ADOQuery1.Active:=true;
end;
procedure Taddform.DBEdit12Exit(Sender: TObject);
begin
if (TWinControl(Screen.ActiveControl).Name <> 'bsSkinButton4' ) then
begin
if (length(Trim(dbedit12.text)) <> 15) and (length(Trim(dbedit12.text)) <> 18 ) then
begin
messagebox(self.Handle,'身份证号非法输入','信息',mb_iconwarning);
dbedit12.SetFocus;
dbedit12.Text:='';
end;
end;
end;end.
procedure Taddform.bsSkinButton2Click(Sender: TObject);
var
qry : TADOquery;
begin
qry := TadoQuery.create(nil);
try
qry.connection := AdoQuery1.Connection;
qry.sql.text := 'select 1 from 表名 where 工号’ ='+QuotedStr( 當前工號的EDIT裏的值)
qry.open;
if not Qry.IsEmpty then begin
showMessage('Fount ID');
abort;
end;
finally
FreeAndNil(Qry);
end;
try
if AdoQuery1.state in [dsinsert,dsEdit] then
begin
adoquery1.FieldByName('生日').AsDateTime:= DateTimePicker2.Date;
adoquery1.FieldByName('入职时间').AsDateTime:= DateTimePicker1.Date;
adoquery1.post;
bsSkinButton1.Visible:=false;
end;
ADOQuery1.UpdateBatch();
except
raise;
end;
end;這裏是沒有問題的。
嘗試檢查下表吧! dbcc checktable
var
qry : TADOquery;
begin
qry := TadoQuery.create(nil);
try
qry.connection := AdoQuery1.Connection;
qry.sql.text := 'select 1 from 表名 where 工号’ ='+QuotedStr( 當前工號的EDIT裏的值)
qry.open;
if not Qry.IsEmpty then begin
showMessage('Fount ID');
AdoQuery1.cancel;
exit;
end;
finally
FreeAndNil(Qry);
end; try
if AdoQuery1.state in [dsinsert,dsEdit] then
begin
adoquery1.FieldByName('生日').AsDateTime:= DateTimePicker2.Date;
adoquery1.FieldByName('入职时间').AsDateTime:= DateTimePicker1.Date;
adoquery1.post;
bsSkinButton1.Visible:=false;
end;
ADOQuery1.UpdateBatch();
except
raise;
end;
end;
try it