IncomeQuery.SQL.Add('Values  ('+AddIncomeForm.SumEdit.Text+''','''  
                                                                                            +AddIncomeForm.ClassComboBox.Text+''','''  
                                                                                            +AddIncomeForm.FamilyComboBox.Text+''','''  
                                                                                            +DateToStr(AddIncomeForm.DateTimePicker.Date)+''','''  
                                                                                            +AddIncomeForm.ResEdit.Text+''')');    
你的引号并不对称啊。

解决方案 »

  1.   

    而且字段与值不对应。应该是:
    IncomeQuery.SQL.Add('Insert  into  Income.db  (金额,日期,类别,家庭成员,备注)');  
    IncomeQuery.SQL.Add('Values  ('+AddIncomeForm.SumEdit.Text+','''  
                                                                                +DateToStr(AddIncomeForm.DateTimePicker.Date)+''','''  
              +AddIncomeForm.ClassComboBox.Text+''','''  
                                                                                  +AddIncomeForm.FamilyComboBox.Text+''','''   
                                                                                  +AddIncomeForm.ResEdit.Text+''')');
      

  2.   

    这是一种很不好的编程习惯,我建议按照下面的方式编程。
    var
      sSQLString: String;
    begin
      sSQLString:='SELECT * FROM ……'  Query1.Close;
      Query1.SQL.Clear;
      Query1.SQL.Add(sSQLString);
      Query1.Open;
    end;
      

  3.   

    注意,你的那里面有blob字段啊,对于blob字段怎么能够直接给值呢?最简单的blob字段傅制方法是blogfield.Assign()