小弟要做一个小型教材采购糸统.在采购输入信息,如果该教材已存在时,只更新数据库中的数量.
如果不存在,则把信息全部写入数据库.教材编号设成主键,小弟想法是这样,但不行.(初学的...)
try
(用insert向教材表中插入)
except
on EDatabaseError do
(update )
end;但是还是这样,当插入教材编号(主键)重复时,程序也不会执行except部分.怎么回事.
如果更好的实现方法...请说说.
如果不存在,则把信息全部写入数据库.教材编号设成主键,小弟想法是这样,但不行.(初学的...)
try
(用insert向教材表中插入)
except
on EDatabaseError do
(update )
end;但是还是这样,当插入教材编号(主键)重复时,程序也不会执行except部分.怎么回事.
如果更好的实现方法...请说说.
解决方案 »
- 有什么控件,类似 速达主窗口中的 功能菜单导航
- 软件界面的探讨!!
- 如何使用fastreport动态改变报表中显示的字段和记录???
- 工具图标,急!
- 一个有趣的问题,图形高手,思想开拓者,请进!!高分相送!!急!!!
- 判断ttreeview是否存在子项
- 如何在不同的系统(win98,win2000,win xp)下判断是否接入internet网?
- TClientDataSet 右键菜单中Assign local dataset功能用代码怎么实现 ?
- 急????为什么我在安装LMD5。0时候它说时间不对呀???错误如下!!!
- 帮我看看这段代码(向SQL Server插入带有Image字段的记录)
- ******有关mxOutlookBarPro控件实现特定效果的问题******在线等
- 插入数据时候,怎么样判断数据表中已经有该纪录?
如果存在就UPDATE数量
不存在就Insert
不用 try
except
on EDatabaseError do
那么麻烦了
就先select count(*) from 表 where 教材编号='XXX' 看是否大于0来判断存不存在也行了
if >0 then update
else Insert;
但我不懂得:
(就先select count(*) from 表 where 教材编号='XXX' 看是否大于0来判断存不存在也行了
if >0 then update)ADOQuery1.SQL.Add('select...')这个是函数吗,如是,它的返回值能这样保存吗?
n:=ADOQuery1.SQL.Add('select...');要不,如何比较是否>0;
ADOQuery1.SQL.Add(select count(*) from 表 where 教材编号='XXX' )
ADOQuery1.SQL.open;
n=ADOQuery1.Fields[0].Value;
if n>0 then
更新
else
插入
但我不懂得:
(就先select count(*) from 表 where 教材编号='XXX' 看是否大于0来判断存不存在也行了
if >0 then update)ADOQuery1.SQL.Add('select...')这个是函数吗,如是,它的返回值能这样保存吗?
n:=ADOQuery1.SQL.Add('select...');要不,如何比较是否>0;
---------------------------------------------------------
n:=ADOQuery1.SQL.Add('select...');????
呵呵
去找本数据库书稍微看看
你楼上的已经说的很清楚了哎
Update 表 set ...........
else
Insert 表 ............
else
insert