碰到一个怪问题,关于VB和SQL的问题,

benjamin8064 2004-06-08 02:25:40
我写了一句SQL语句,在SQL的查询分析器运行一切正常,但是当我用VB去执行这条语句时,发现执行的结果和SQl查询分析器出来的不一样。

比如:
SQL查询分析器
科目 考试人数
语文 0
数学 0
外语 0
物理 5
化学 4
VB结果
科目 考试人数
语文 5
数学 5
外语 5
物理 5
化学 5
请问各位,我应该怎么查?

Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Command1_Click()
With db
.ConnectionString = "Driver={SQL Server};Server=服务器名;Uid=sa;Pwd=;Database=数据库名"
.Open
End With
strsql = 那句SQL语句(由于很长,在此省略)
rs.Open strsql, db, adOpenStatic, adLockPessimistic
rs.Close
db.Close
End Sub

...全文
115 点赞 收藏 10
写回复
10 条回复
benjamin8064 2004年06月08日
to kissoflife:
我就是这么做的,唉,晕呀
回复 点赞
wumy_ld 2004年06月08日
理论上不可能出现这么夸张的错误,楼主可以把查询分析器里面的代码拷贝到vb里面,再看看效果。
回复 点赞
huangjianyou 2004年06月08日
SQL语句和在查询分析器里执行的语句,这不是两条语句吗?
回复 点赞
benjamin8064 2004年06月08日
这是一条语句
只是里面包含子语句
回复 点赞
hebookboy 2004年06月08日
跟踪啊
回复 点赞
huangjianyou 2004年06月08日
应该是两条语句啊。
设置断点,看一下另外一条怎样的。
回复 点赞
benjamin8064 2004年06月08日
这是那条语句
回复 点赞
benjamin8064 2004年06月08日
select c_achievestatus.id_achievestatus_a,case when a.ct is null then '0' else a.ct end as amount
from c_achievestatus left join
(select ch_proposal_trial.id_achievestatus_a,count(*) as ct
from event_trial,ch_proposal_trial,staff
where event_trial.eventtrial_id=ch_proposal_trial.eventtrial_id
and event_trial.staff_id_a=staff.staff_id_a
and event_trial.actualstartdate>='2004-6-8 0:00:00'
and event_trial.actualstartdate<='2004-6-8 23:59:59'
group by ch_proposal_trial.id_achievestatus_a
) a on c_achievestatus.id_achievestatus_a=a.id_achievestatus_a
order by c_achievestatus.id_achievestatus_a
回复 点赞
efei 2004年06月08日
是的,怎么把最重要的SQL语句给省略了呢
回复 点赞
huangjianyou 2004年06月08日
重要的才省略,你真是的。
你应该把SQL语句和在查询分析器里执行的语句贴出来,这样人家才能帮你解决啊。
回复 点赞
发动态
发帖子

863

社区成员

5.5w+

社区内容

VB 数据库(包含打印,安装,报表)
社区公告
暂无公告