状态一 使用数据构型
<!-- METADATA TYPE="TypeLib" UUID="00000200-0000-0010-8000-00AA006D2EA4" -->
<%
Set Connection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=MSDataShape;DATA PROVIDER=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=123;Initial Catalog=Northwind;Data Source=(local)"
Connection.Open(ConnectionString)
SQL = _
"SHAPE {SELECT CustomerID FROM Customers} "&_
"APPEND ({SELECT OrderID,CustomerID FROM Orders} AS chapOrders "&_
"RELATE customerID TO customerID)"
Set Rs = Connection.Execute(SQL)
Do While not Rs.Eof
Response.Write(Rs(0) &" - "& Rs.Fields.Count)
Response.Write("<br>")
Set RsChild = Rs("chapOrders").Value
Do While Not RsChild.EOF
Response.Write( RsChild(0) &" "& RsChild(1) &" - "& RsChild.Fields.Count)
Response.Write("<br>")
RsChild.MoveNext
Loop
RsChild.Close
Rs.MoveNext
Loop
Set RsChild = Nothing
Rs.Close
Set Rs = Nothing
Connection.Close
Set Connection = Nothing
%>
发送如下 SQL
SET NO_BROWSETABLE ON
go
declare @P1 int
set @P1=1
exec sp_prepare @P1 output, NULL, N'SELECT OrderID,CustomerID FROM Orders', 1
select @P1
go
SET NO_BROWSETABLE OFF
go
SELECT CustomerID FROM Customers;SELECT OrderID,CustomerID FROM Orders
go
SET NO_BROWSETABLE ON
go
exec sp_unprepare 1
go
状态二 不使用数据构型
<!-- METADATA TYPE="TypeLib" UUID="00000200-0000-0010-8000-00AA006D2EA4" -->
<%
Set Connection = Server.CreateObject("ADODB.Connection")
ConnectionString = "PROVIDER=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=123;Initial Catalog=Northwind;Data Source=(local)"
Connection.Open(ConnectionString)
SQL = "SELECT Customers.CustomerID, Orders.OrderID, Orders.CustomerID FROM [Customers],[Orders] WHERE Customers.CustomerID=Orders.CustomerID"
Set Rs = Connection.Execute(SQL)
Do While not Rs.Eof
Response.Write(Rs(0) &" - "& Rs.Fields.Count)
Response.Write("<br>")
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing
Connection.Close
Set Connection = Nothing
%>
发送如下 SQL
exec sp_reset_connection
go
SELECT Customers.CustomerID, Orders.OrderID, Orders.CustomerID FROM [Customers],[Orders] WHERE Customers.CustomerID=Orders.CustomerID
go
效率就不用说了 总体来说 感觉使用性不是很大 分类和论坛结构上可能用到上
当效率是很大的问题 我宁愿使用联合查询 配合其他方法实现同样效果