function TsellF.changerecord:boolean;
var
  Query:TQuery;
begin
  try
    Query:=TQuery.create(nil);
    Query.DatabaseName:=DBName;
    Query.SQL.Add('update SellLand set sell=sell+:sell,totalmoney=totalmoney+:totalmoney where outday=:today');
    Query.ParamByName('sell').AsFloat :=strtofloat(edit8.Text);
    Query.parambyName('totalmoney').asfloat:=strtofloat(edit8.text);
    Query.ParamByName('today').AsDatetime:=date;
  except
    Query.Free ;
    Query.Close ;
    exit;
  end;
  Query.ExecSQL ;
  Query.Free;
  Query.Close ;end;function TsellF.updata:boolean;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.add('select *from SellLand where outday=:today');
    Query.parambyname('today').asdatetime :=date;
    Query.open;
    if Query.recordcount<>0 then
      begin
      changerecord;
      end
    else
      begin
      insertrecord;
      end;
    result:=true;
  except
    result:=false;
    Query.Free ;
    Query.close;
    exit;
  end;
  Query.Free ;
   Query.Close ;
end;function TSellF.insertrecord:boolean;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
      Query.SQL.Add('insert into SellLand(sell,Land,Totalmoney,outday)'
                    +'  values(:Sell,:Land,:Totalmoney,:outday)');
      Query.ParamByName('sell').Asfloat := strtofloat(edit8.text);
      Query.ParamByName('Land').Asfloat:=0;
      Query.ParamByName('Totalmoney').Asfloat:=strtofloat(edit8.text);
      Query.parambyName('outday').asdate:=date;
      Query.ExecSQL;
      result:=true;
  except
    Query.free;
    result:=false;
    exit;
  end;end;

解决方案 »

  1.   

    Query.SQL.Add('update SellLand set sell=:sell+:sell,totalmoney=:totalmoney+:totalmoney where outday=:today');
        这两句怎么是一个edit
        Query.ParamByName('sell').AsFloat :=strtofloat(edit8.Text);
        Query.parambyName('totalmoney').asfloat:=strtofloat(edit8.text);
        Query.parambyName('outday').asdate:=date;date 这里也有问题呀!
      

  2.   

    Query.SQL.Add('update SellLand set sell=:sell+:sell,totalmoney=:totalmoney+:totalmoney where outday=:today');
        
    你如果这样改了就改了我的本意了呵
    谢谢!!
      

  3.   

    Query.DatabaseName := DBName;这个?
    你的数据库名是DBName?
      

  4.   

    不知你要干什么,但是这样肯定是要出错的,  
    Query.Free ;
    Query.Close ;//对象FREE之后不能调用他的任何方法,因为他已经不存在了,把这两行颠倒
      

  5.   

    这个if  insertrecord then
    应该放入到function TsellF.updata:boolean;着个函数中吧?
    不然你怎么插入和更新啊
    还有asdatetime 和你的date不对吧?