我实现的是双击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其他记录的时候就会出错!
请问这个错误怎么解决呢?我查了手册了,上面也没讲怎么解决这个错误的!
请那为高手高手高高手帮我一下!
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其他记录的时候就会出错!
解决方案 »
- delphi如何获取网页的http返回状态及反应时间
- Delphi如何使用C++ template class?
- 请教控件复制(创建)
- 如何把己知的文本,动态的复制进指定窗口的文本框
- 请问用TClientDataSet建表的时候,如何建立可变长度的字符型的字段?
- 在Delphi中如何实现用条码机打印条形码?
- 为什么我将EXECL表的数导入数据库时类型不对。
- 请教DELPHI的哪四个认证,广东哪处有授权(ATA授权的)???
- 帮忙看看这段代码
- 添加的IE按钮如何和添加的工具条交互,比如按钮状态
- 请问TRzListView组件设置那几个属性可以实现XP风格。我用的是raize4.01控件套件。
- 向memo发送一个ctr+回车消息
后边
dbedit2.DataSource:=form3.datasource2;
不懂为什么要这样做?
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;
----------------------------------------------------------------
希望能够听从我的建议,把程序结构改一下吧,我觉得在这样的设计下,不出错是很难的,而且他人维护你的代码,将会非常的痛苦,改一下结构吧,你会豁然开朗