异常!!我的第一个实际程序(100分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
听各位大虾说写实际的程序长进最大,也到老师那里骗了一个项目,
请大家多帮助!分不多,因为以后问题多着呢:)
用try...except... , 如果在调试状态下,必须关掉delphi的异常处理,
否则出现异常时,会跳回ide,继续运行才会出现自己的信息
-----在哪里关掉?
一个表中的主索引是“工程名称,工程项目(注:一个工程名称有10个相同的工程项目),年份,月份”
query1的sql属性为
select *
from detail.db
where 工程名称=:工程名称1 and 工程项目=:工程项目1
and 年份=:年份1 and 月份=:月份1
让记录指针向前移动,
try
query1.prior;
(向前,向后等)
except
showmessage("");
end;
是不是在这种sql语句下,记录指针不会再移动了?
 
littlefish曰:千金散尽还复来。。。。。
 
可能这样是不能动弹了,再加一个query,
select *
from detail.db
where 工程名称=:工程名称1 and 工程项目=:工程项目1
??
那要是我自己答出来。。。。呵呵。。
 
在哪里关掉?
菜单 Tools/Debug

query.Next 才行啊
Prior是向前,现在已经是最前了再也前不了了
 
再说,你的 Query 控件 open 了没有? query.Open()
 
如果按照
select *
from detail.db
where 工程名称=:工程名称1 and 工程项目=:工程项目1
and 年份=:年份1 and 月份=:月份1
不是最前。。。能不能移动呢?(query 已经open)
 
一打开就在最前,你next几次移动到后面了,就可以prior移动回来
 
PiPi,
with query1 do
begin
close;
unprepare;
parambyname('gcmc1').asstring:=combobox3.text;//工程名称的参数
parambyname('gcxm1').asstring:=combobox4.text;//工程项目的参数
parambyname('nf1').asinteger:=strtoint(combobox1.text);//年份
parambyname('yf1').asinteger:=strtoint(combobox2.text);//月份
prepare;
open;
Edit;
我想在选定上述参数后在DBEdit中显示出该“工程名称”(选的),该“工程项目”(选的)在本年本月的投资额,如“道路建设”,“饰面”。。。
现在已经达到这个目的(所以不是在表的最前)。为难的是向前,向后
 
唉,你这样一关、一开,又用where限定了记录,你现在query中就只有一个记录了
还谈什么向前向后

你打开query以后如果要定位记录,应该用 Locate 来找到那记录,
然后可以向前向后
 
你的query 的 where 不要,就是选全部数据

如果你要定位,就是这样:

query.Locate('gcmc;gcxm;nf;yf',['我的工程','我的项目',1999,12],[])
 
pipi,
看原来老师也是这样指点我的,不过我找不到locate的中文说明,E文又差:(。
如果查不出来怎样在程序里给出gcmc,gcxm,nf,yf的参数的方法,再麻烦您。
 
pipi,
locate中的参数(gcmc,gcxm,nf,yf )都必需设置成variant么?那样太占资源了:(
 
好了,就这样先结束吧。以后再掏钱
 
接受答案了.
 
后退
顶部