一个小问题,在线等待!

                            
我写了一个数据查询模块,它的SQL属性如下:   
  insert   into   salary_other  
  (id,yearmonth,person,type,name,money,description)  
  values(:id,:year,:person,:type,:name,:money,:descrip)  
  当把它的ACTIVE属性变成TRUE时,提示有错如下:  
  key   violation  
  [microsoft][odbc   sql   sevel   driver][sql   sevel]  
  无法将NULL值插入到‘TYPE’,表“Mydatabase.dbo.salary.other",该列不允许空值。Insert   失败。  
  请问这是怎么回事?  
   
   
  还有我做的登陆窗体为什么要输入两次正确的密码才能进入。源程序如下:  
  unit   u_login;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,   jpeg,   ExtCtrls,   Buttons;  
   
  type  
      TF_login   =   class(TForm)  
          Panel1:   TPanel;  
          Image1:   TImage;  
          Label1:   TLabel;  
          Label2:   TLabel;  
          Label3:   TLabel;  
          i_user:   TEdit;  
          i_passwd:   TEdit;  
          B_login:   TBitBtn;  
          B_cancel:   TBitBtn;  
          procedure   B_loginClick(Sender:   TObject);  
          procedure   FormShow(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      F_login:   TF_login;  
   
  implementation  
  uses   salary,   u_datamodule;  
   
  {$R   *.dfm}  
   
  procedure   TF_login.B_loginClick(Sender:   TObject);  
  var  
      passwd:String;  
  begin  
      With   DM_main   do  
      begin  
          Database.Connected:=True;  
          passwd:=i_passwd.Text;  
          Q_login.Params.ParamValues['USER']:=i_user.Text;  
          Q_login.Params.ParamValues['PASSWD']:=passwd;  
          Q_login.Open;  
      if   Q_login['COUNT']=1   then  
        begin  
            Q_login.Close;  
              Close;  
          end  
          else  
        begin     //认证失败  
              Application.MessageBox('请确认用户名和密码,注意大小写!',   '认证失败',MB_OK);  
              Database.Connected:=False;  
          end;  
      end;  
  end;  
  procedure   TF_login.FormShow(Sender:   TObject);  
  begin  
      DM_main.Database.Connected:=False;  
      i_passwd.Text:='';  
  end;  
  end.  
   
 

查看回复