我在数据库中建了几个视图,然后在delphi 中用sql 语句查询视图中的数据
Str:='select * from view where deviceId='123' '
if C1.checked then
Str:=Str+' and deviceName='256666'';
对deviceName的查询限制条件不起作用,有时候点击查询按钮次数过多的话,就出现 内部sql server错误
请问高手,这是什么原因造成的?
Str:='select * from view where deviceId='123' '
if C1.checked then
Str:=Str+' and deviceName='256666'';
对deviceName的查询限制条件不起作用,有时候点击查询按钮次数过多的话,就出现 内部sql server错误
请问高手,这是什么原因造成的?
解决方案 »
- 让程序不响应WEBBROSER控件的setfocus消息,怎么写???
- 如何快速的将DATASET的数据转换到EXCEL中(在线等待)
- 高手或半高手都进来!自动下载->解压缩->读取文本插入到数据库表 用delphi来实现?
- 关于StringGrid
- 哪里有Delphi7.0下载?
- access数据库查询时间的问题,郁闷!!!!!!!!!!!!!
- delphi 7,webservice apache2.x的一个问题??
- Delphi 错误:raised exception class EAccessViolation with message...
- 用了CLOSE ,HIDE窗口还是关闭不了,过一会又再出现
- 一个令我莫名其妙的问题,不知你懂不懂?帮帮忙!!!!!!!!!!!
- 高分跪求求高效的TreeView填充及编辑算法
- winVNC被瑞星禁止的问题
if C1.Checked=true then
Str:=Str+' and QH='+QH.Text+'';//QH是smallint
if C2.checked=true then
str:=Str+' and DeviceID='''+trim(DeviceID.Text)+'''';//字符型 pbl.opensql(Str,Query);
查询只有第一次是有效的,以后无效
Query.Sql.Text:=SQLText;
Query.prepared;
Query.Open;
你这里的query是动态创建的还是自己利用控件来做的
((SELECT SUM(Measure.Num * List.Price)
FROM Measure INNER JOIN
List ON Measure.ProjectID = List.ProjectID
WHERE List.ItemID = A.ItemID AND Measure.QH = A.QH), 0) AS YTotal,
ISNULL
((SELECT SUM(Num)
FROM ConcreteMst
WHERE ConcreteMst.ItemID = A.ItemID AND ConcreteMst.QH = A.QH), 0)
AS CNum, ISNULL
((SELECT SUM(ConcreteDtl.Total)
FROM ConcreteDtl INNER JOIN
ConcreteMst ON ConcreteDtl.DH = ConcreteMst.DH
WHERE ConcreteMst.ItemID = A.ItemID AND ConcreteMst.QH = A.QH), 0)
AS TTotal, ISNULL
((SELECT SUM(GetOutDtl.Total)
FROM GetOutDtl INNER JOIN
GetOutMst ON GetOutDtl.DH = GetOutMst.DH
WHERE GetOutMst.ItemID = A.ItemID AND GetOutMst.QH = A.QH), 0) AS MTotal,
ISNULL
((SELECT SUM(pjtCheckDtl.Total)
FROM pjtCheckDtl INNER JOIN
pjtCheckMst ON pjtCheckDtl.DH = pjtCheckMst.Dh
WHERE pjtCheckMst.ItemID = A.ItemID AND pjtCheckMst.QH = A.QH), 0)
AS RTotal, ISNULL
((SELECT SUM(DCost.Total)
FROM (SELECT WTimer.DeviceID, WTimer.ItemID, WTimer.QH, WTimer.WTimer,
(DWCost.MTotal + DWCost.ZTotal + DWCost.STotal + DWCost.RTotal)
* WTimer.WTimer / WTimer.DTimer AS Total
FROM (SELECT A.DeviceID, A.ItemID, A.QH, SUM(A.Timer) AS WTimer,
(SELECT SUM(Timer)
FROM DeviceRunMst
WHERE DeviceRunMst.DeviceID = A.DeviceID AND
DeviceRunMst.QH = A.QH) AS DTimer
FROM dbo.DeviceRunMst A
GROUP BY A.DeviceID, A.ItemID, A.QH) WTimer INNER JOIN
DWCost ON WTimer.DeviceID = DWCost.DeviceID AND
WTimer.QH = DWCost.QH) DCost
WHERE DCost.ItemID = A.ItemID AND DCost.QH = A.QH), 0) AS DTotal
FROM (SELECT DISTINCT QH, ItemID
FROM pjtCheckMst
UNION
SELECT DISTINCT QH, ItemID
FROM ConcreteMst
UNION
SELECT DISTINCT QH, ItemID
FROM Measure INNER JOIN
List ON Measure.ProjectID = List.ProjectID
UNION
SELECT DISTINCT QH, ItemID
FROM GetOutMst
UNION
SELECT DISTINCT QH, ItemID
FROM DeviceRunMst) A 把原来的几个视图拼接成的试图改成一个视图的形式,代码如上,但是还是不行啊,提示内部sql server错误,
改成在存储过程,函数中也是一样
在查询分析器中试试看执行结果如何