Shape语句如何动态生成

xujiaqiang 2000-01-21 10:02:00
譬如说有n个表a,b,c,d...n.
它们依次是1对多的关系,即a和b是1对多,b和c是1对多....依次类推,
a是最上层,第n个表是最底层.
现将它们的SQL语句组合成一条Shape语句,以便一次取回所有
n个表的相关数据,如何编写VB代码动态生成Shape语句.

其中n是变数,当层次较多时,Shape语句的构造很复杂.

谢谢高手!



...全文
158 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xujiaqiang 2000-01-22
  • 打赏
  • 举报
回复
谢谢cloud,你的代码我会再仔细研究。
其实各表的Sql语句已生成,它和上层的Relate也已确定。
但从MSDN的例子中我发现Append后面有时紧跟着多个左括号,
这些括号的起始终止位置会影响整个SHAPE语句,我不能确定。
而且单个表的As字句有时出现多次。
Firing_Sky 2000-01-22
  • 打赏
  • 举报
回复
用一个递归或者循环来生成SQL命令行,再执行它!
你要能说详细点就更好了
cloud 2000-01-21
  • 打赏
  • 举报
回复
用一个递归函数可以实现:
例如:
Function FetchSql(n as integer,byval DBName as collection, _
conn_id as string) as string
'DBName中存放表名。顺序是 n...d,c,b,a;
dim strSql
if n=2 then
strSql = "SHAPE { SELECT * FROM " & DBName.Item(n - 1) & " }" _
& " APPEND ( { SELECT * FROM " & DBName.Item(n) & "} AS chapter" _
& " RELATE " & conn_id & " TO " & conn_id & ")"

else
strSql = "SHAPE { SELECT * FROM " & DBName.Item(n - 1) & " }" _
& " APPEND ( { " & FetchSql(n - 1, DBName, conn_id) & " } AS chapter" _
& " RELATE " & conn_id & " TO " & conn_id & ")"
end if
return strsql
end function

'这个算法是否可以满足你的要求。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧