我有一个数据集(TADODataset),它馈送到分配给数据源(TDataSource)的内存数据集(TdxMemData)。当我运行程序并且 SQL 没有按任何顺序排序时,返回的三个记录显示在 3 个单独的报告页面 (ReportBuilder) 上。但是,当我按字段排序时,报告的前两条记录被附加在一起,只有最后一条记录正确显示。
这是神秘的,信息量不是很大,但我想看看我是否遗漏了一些简单的东西。代码不应该产生不同的结果,因为我订购了 SQL,但它确实如此。它让我相信我错过了该组件的设置。有谁知道排序 SQL 数据集可能导致的任何问题以及它与内存数据集交互的方式?我对使用这些组件类型非常陌生,我只是在寻找比我更有经验的人来让我知道我应该把它带到哪里。任何帮助将不胜感激,如果有任何不清楚的地方,我会尽力澄清。提前致谢。
2013 年 8 月 14 日更新:
SQL 语句(在 Order By 之前):
SELECT r.RecordID, r.VisibleRouteID, r.DriverSideStudentsPerSeat,
r.ServiceSideStudentsPerSeat, v.Vehicle, v.DriverSideRows,
v.ServiceSideRows, v.RecordID AS VehicleID
FROM Route r
LEFT OUTER JOIN Vehicles v ON v.RecordID = r.VehicleID
WHERE r.RecordID = :RouteID
SQL 语句(添加 Order By 后):
SELECT r.RecordID, r.VisibleRouteID, r.DriverSideStudentsPerSeat,
r.ServiceSideStudentsPerSeat, v.Vehicle, v.DriverSideRows,
v.ServiceSideRows, v.RecordID AS VehicleID
FROM Route r
LEFT OUTER JOIN Vehicles v ON v.RecordID = r.VehicleID
WHERE r.RecordID = :RouteID
ORDER BY r.VisibleRouteID