Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JET和SQL Server是否支持分层行集?_Sql_Sql Server_Winapi_Oledb_Jet - Fatal编程技术网

JET和SQL Server是否支持分层行集?

JET和SQL Server是否支持分层行集?,sql,sql-server,winapi,oledb,jet,Sql,Sql Server,Winapi,Oledb,Jet,OLEDB文档用SQL示例记录了一个数据库,但没有指出哪些DB提供程序支持它。JET和SQL Server是否支持此功能?它们是否使用与文档中相同的语法,或它们自己的扩展语法?这不是对您问题的直接回答,因此如果必须使用分层行集,请忽略它。 我记得大约9年前读过关于这个功能的文章,但从那以后就再也没有看到它被使用过。我认为这被证明是错误的做法。另一方面,我确实经常使用常用的表表达式(特别是递归表达式),并发现它们很有价值()。 我认为分层行集应该做的是对象关系映射,而这些行集无论如何都不能成为良好

OLEDB文档用SQL示例记录了一个数据库,但没有指出哪些DB提供程序支持它。JET和SQL Server是否支持此功能?它们是否使用与文档中相同的语法,或它们自己的扩展语法?

这不是对您问题的直接回答,因此如果必须使用分层行集,请忽略它。 我记得大约9年前读过关于这个功能的文章,但从那以后就再也没有看到它被使用过。我认为这被证明是错误的做法。另一方面,我确实经常使用常用的表表达式(特别是递归表达式),并发现它们很有价值()。
我认为分层行集应该做的是对象关系映射,而这些行集无论如何都不能成为良好的ORM(NHibernate更好)。

是的,它是受支持的。我过去经常用它。使用MDAC附带的(位于名为Msadds.dll的文件中)提供此功能。OLE DB提供程序名为
MSDataShape
,您可以使用来生成分层结果。连接字符串语法如下所示:

喷气式飞机:

SQL Server:

Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=ServerNameOrAddress;Initial Catalog=DatabaseName;User ID=;Password=
一些值得注意的事情:

  • 形状语法可能会变得非常复杂 像你一样笨拙(和笨拙) 查询变得更加复杂,所以请保持 这是我的想法

  • 如果您使用的是.NET,则可以通过
    DataSet
    DataRelation
    类实现相同的功能

  • 更重要的是,文件明确指出:

此功能将在以后的操作中删除 Windows的未来版本。避免使用 在新的发展工作中,, 并计划修改以下应用程序: 目前正在使用此功能。相反 应用程序应该使用XML


Jet和SQLServer是两个完全不同的数据库引擎,它们在SQL和各种各样的东西方面的支持完全不同。这是两个独立的问题,但在我看来,这两个问题都很容易通过尝试解决。您试过了吗?小说明:常见的表表达式是针对SQL Server的,而问题是针对SQL Server和Jet/ACE.David,您是对的。但考虑到总体技术选择,我个人仍然会避免使用分层行集,我想NHibernate会很乐意使用Access。开始工作有点棘手,但几周后就会有回报。我见过很多次使用普通OLEDB、ADO.NET等而不是某种映射器(最初是为了保持简单)会导致代码混乱。我使用lean和mean BLToolkit有一段时间了,它有一个很好的MapResultSets函数,它以声明式和面向对象的方式实现了这种映射。我早在2000年就深入研究了Access子数据表的本质,很快就与MSDataShape提供程序结下了不解之缘。考虑到Access在当前版本中仍然支持子数据表,UI组件(如果不是在代码中)似乎仍然支持它。还请记住,Jet曾经是MDAC的一部分,但在Jet成为Windows组件(即Win2000)后的一段时间被删除。鉴于A2000以后的版本似乎对MSDataShape有一定的依赖性,我想知道如果您安装了Access,是否有支持。
Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=ServerNameOrAddress;Initial Catalog=DatabaseName;User ID=;Password=