【发布时间】:2011-12-13 18:52:31
【问题描述】:
我正在同一个应用程序中处理多个数据库。我正在使用来自两家不同公司的驱动程序。两家公司都有运行良好的 tTable 和 tQuery 后代。
我需要一种对数据进行通用访问的方法,无论我使用哪个驱动程序/tQuery 组件来返回一组数据。此数据不会与组件相关联,仅与我的逻辑相关。
例如...(伪代码)让我们创建一个可以针对任一 tQuery 组件运行的函数
function ListAllTables(NameOfDatabase : String) :ReturnSet??
begin
If NameOfDataBase = 'X' then use tQuery(Vendor 1)
else use tQuery(Vendor 2)
RunQuery;
Return Answer...
end;
当正常运行查询时,我会这样做
Query.Open;
While not Query.EOF do
begin
Read my rows..
next;
end;
如果我正在调用 ListAllTables,我的返回类型是什么,以便我可以遍历行?每个 tQuery 供应商都是不同的,所以我不能使用它(我可以,如果可以,我想要吗?)我可以构建一个内存表,并将其传回,但这似乎是 ListAllRows 构建一个额外的工作内存表,然后将其传递回调用例程,以便它可以“取消构建”,即遍历行...
您有什么想法和建议? 谢谢 GS
【问题讨论】: