我实现的是双击dbgrid里的一条记录,转入另一个form里进行updata,但是在修改的时候运行会出现错误,错误信息是:couldn't perform the edit because another user changed the record!
请问这个错误怎么解决呢?我查了手册了,上面也没讲怎么解决这个错误的!
请那为高手高手高高手帮我一下!
updata代码:
  dbedit2.DataSource:=datasource1;
  dbedit3.DataSource:=datasource1;
  dbedit4.DataSource:=datasource1;
  dbmemo1.DataSource:=datasource1;
  SQL.Clear;
with Query1 do
 begin
  Query1.Active:=true;
SQL.Add('update cost set  should_cost='''+Trim(DBEdit2.text)+''',fact_cost='''+Trim(DBEdit3.text)+''',cost_date='''+datetimetostr(DateTimePicker1.date)+''',people='''+Trim(DBEdit4.text)+''',description='''+Trim(DBMemo1.text)+'''');
  sql.Add('where student_id='''+dbedit1.Text+'''');
query1.ExecSQL;
      form3.Table2.Refresh;
      ShowMessage('操作已成功!');
      dbedit2.DataSource:=form3.datasource2;
      dbedit3.DataSource:=form3.datasource2;
      dbedit4.DataSource:=form3.datasource2;
      dbmemo1.DataSource:=form3.datasource2;
在updata第一条记录的时候执行都是可以的,就是在updata其他记录的时候就会出错!

解决方案 »

  1.   

    query1只用来获取数据,不用query1执行update语句 另外建个query或用command之类的来执行就行了
      

  2.   

    dbedit2.DataSource:=datasource1;
    后边
    dbedit2.DataSource:=form3.datasource2;
    不懂为什么要这样做?
      

  3.   

    updata的时候用的是datasource1。但是双击事件要把在form3里的内容传到form6里面所以这样dbedit2.DataSource:=form3.datasource2啊
      

  4.   

    你这是先打开了这个记录并为EDIT状态,然后你再给这条记录进行修改....就可能会把上面的错吧....
      

  5.   

    updata代码:
      dbedit2.DataSource:=datasource1;
      dbedit3.DataSource:=datasource1;
      dbedit4.DataSource:=datasource1;
      dbmemo1.DataSource:=datasource1;
      SQL.Clear;
    with Query1 do
     begin
      Query1.Active:=true;
    SQL.Add('update cost set  should_cost='''+Trim(DBEdit2.text)+''',fact_cost='''+Trim(DBEdit3.text)+''',cost_date='''+datetimetostr(DateTimePicker1.date)+''',people='''+Trim(DBEdit4.text)+''',description='''+Trim(DBMemo1.text)+'''');
      sql.Add('where student_id='''+dbedit1.Text+'''');
    query1.ExecSQL;
          form3.Table2.Refresh;
          ShowMessage('操作已成功!');
          dbedit2.DataSource:=form3.datasource2;
          dbedit3.DataSource:=form3.datasource2;
          dbedit4.DataSource:=form3.datasource2;
          dbmemo1.DataSource:=form3.datasource2;
    ----------------------------------------------------------------
    希望能够听从我的建议,把程序结构改一下吧,我觉得在这样的设计下,不出错是很难的,而且他人维护你的代码,将会非常的痛苦,改一下结构吧,你会豁然开朗