很郁闷,用tadoquery access sql server ,view不能即时生效!! |
尚未結案
|
dg822
一般會員 發表:14 回覆:38 積分:10 註冊:2004-12-16 發送簡訊給我 |
是这样的,有一个edit的视窗(用于编辑table te_ProductionDetailsDaily,下面有说),用tadoquery+dbgrid方式让user入数。
tadoquery的sql是:
Select top 100 * From view_AssmyDailyEntry
Where fe_date=:date And fg_ManagedBy=:dept
Order By fe_LineNumber view_AssmyDailyEntry的内容:
SELECT
pdd.fe_rid,
pdd.fe_Date, pdd.fe_LineNumber, pdd.fe_JobNumber, pdd.fe_JobProcessID,
pdd.fe_state,
...........
jsh.fh_ModelNumber, jsh.fh_BrandName, jpt.ff_JobProcess,
ml.fg_ManagedBy,
pdd.fe_create_by,
pdd.fe_create_dt, pdd.fe_update_by, pdd.fe_update_dt
FROM dbo.te_ProductionDetailsDaily pdd
INNER JOIN dbo.tf_JobProcessType jpt WITH (nolock) ON
pdd.fe_JobProcessID = jpt.ff_JobProcessID INNER JOIN
dbo.tg_ManufacturingLine ml WITH (nolock) ON
pdd.fe_LineNumber = ml.fg_LineNo_ INNER JOIN
dbo.ti_JobSheetDetails jsd WITH (nolock) ON
pdd.fe_JobNumber = jsd.fi_JobNumber INNER JOIN
dbo.th_JobSheetHeader jsh WITH (nolock) ON
jsd.fi_JobNumMain = jsh.fh_JobNumber
WHERE (ml.fg_LineType = 'D') 建立这个view的原意是为了方便显示辅助信息(如JobProcess等),但是遇到以下几个问题:
当adoquery数据更新后,要刷新才能显示join进入的其他表,但结果不行,分两种情况:
1,当insert成功后,在afterpost event中调用qry_prodentry.Refresh则出现ado的错误:
数据存储中此行的键值已被更改或删除。现在本地已被删除。
没办法,可能是我的query中有一个key来自tg_ManufacturingLine,外面表,不知道对不对。
所以改为close,然后再open。不知道再位有没有更好的办法。
2,当update数据(非新加记录),比如我更改fe_JobNumber的值,再在afterpost event中调用qry_prodentry.Refresh,没出错,但refresh没产生作用,因为fh_ModelNumber, fh_BrandName 这些栏位没刷新。 各位大大如果有用过ado开发的,请指点一二。
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
|
dg822
一般會員 發表:14 回覆:38 積分:10 註冊:2004-12-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |