易截截图软件、单文件、免安装、纯绿色、仅160KB

DELPHI医院 SQL急诊 - Delphi / 数据库相关

sql数据库
dbGrid浏览 编辑
其中一字段为逻辑字段,当某一记录的该字段修改为TRUE时,其它记录的该字段全部为FALSE

希望就在dbGrid的某事件中完成,请教. (提供说明或是代码均可)


在修改字段值保存时,记住修改的记录的id,然后update不等于该id的这个字段值为False,然后重新load数据,再定位到这个id记录上

我希望知道在dbGrid或是数据源的什么事件中写代码,如何检测到该字段发生了变化...

afterpost

数据源的afterpost事件

方法一: 使用触发器
方法二: 在afterpost事件中写代码

建议不要在触发器中写,因为要维护两处代码。
可以在afterpost里写,也可以在post动作后直接写处理语句。
参考代码如下:

注:Adoquery1与dbGrid关联,Adoquery2用于执行SQL语句。
修改某行记录的字段后,假设主键为keyid,值为123。
Adoquery1.post;
Adoquery2.sql.clear;
Adoquery2.sql.add("update table1 set column1 = false where keyid <> 123");
Adoquery2.Execute;

Adoquery1.reopen;

Adoquery1.close;
Adoquery1.open;

Adoquery1.locate(); 定位回主键为keyid,值为123的记录。


谢谢,有启发
因为操作之前必须有操作确认,我只能把代码写在DBGrid1MouseUp中
if DBGrid1.SelectedField.FieldName = 'school_Default' then ...
if Application.MessageBox('确定改变默认的工程单位吗? ...

结题了!


相关问答:

jsp链接sql2000的疑问?



type Exception report


message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jas ......

Python中的Unicode在Delphi如何还原成Gb2312?

已知Python 中:
s = unicode("测试", "gb2312")
s = u'\u6d4b\u8bd5'
print s
测试

在Delphi里面如何将\u6d4b\u8bd5这样的还原成Gb2312的汉字呢?
找到个方法
......

Asp+sql server问题 - Web 开发 / ASP

我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例: ......

sql - MS-SQL Server / 疑难问题

sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊

随便搞一D版吧,

迅雷第一个就可以用
2000,2005都这样

http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......

sqlserver错误 - MS-SQL Server / 疑难问题

sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题,
sqlserver的日子上的错误如下:
日期 2010-1-25 14:45: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号