Laploy Web Board
Would you like to react to this message? Create an account in a few clicks or log in to continue.

เรียนรู้ด้วยตนเอง Database : บทที่ 23 รูปที่ 23.8

2 posters

Go down

เรียนรู้ด้วยตนเอง Database : บทที่ 23 รูปที่ 23.8 Empty เรียนรู้ด้วยตนเอง Database : บทที่ 23 รูปที่ 23.8

ตั้งหัวข้อ  Naja 16th June 2010, 5:48 pm

จากหนังสือ เรียนรู้ด้วยตนเอง Database : บทที่ 23 รูปที่ 23.8 เป็นตัวอย่างสพร็อกซ์มาก select
ขอสอบถามเพิ่มเติมดังนี้ค่ะ


USE AdventureWorks
GO
IF OBJECT_ID ('Production.spGetList','P') IS NOT NULL
DROP PROCEDURE Production.spGetList;
GO
CREATE PROC Production.spGetList
@Product VARCHAR(40),
@MaxPrice money,
@TopPrice money OUTPUT,
@MinPrice money OUT
AS
SELECT p.[Name] AS Product, p.ListPrice AS 'List Price'
FROM Production.Product AS p
WHERE p.ListPrice > 0 AND p.ListPrice < @MaxPrice;
SET @TopPrice = (SELECT MAX(p.ListPrice)
FROM Production.Product AS p
WHERE p.ListPrice > 0 AND p.ListPrice < @MaxPrice);
SET @MinPrice = (SELECT MIN(p.ListPrice)
FROM Production.Product AS p
WHERE p.ListPrice > 0 AND p.ListPrice < @MaxPrice);
GO

จากโค้ด ไม่เห็นมีการนำตัวอินพุท @Product มาใช้ มีแต่ @MaxPrice
และจากการเรียกใช้


DECLARE @p1 MONEY, @p2 MONEY
EXECUTE Production.spGetList '%Bikes%', 8,
@p1 OUT,
@p2 OUT
SELECT @p1 AS 'Max Price', @p2 AS 'Min Price'

มีการส่ง '%Bikes%' ไปให้ @Product ที่เป็นอินพุท และผลลัพธ์ได้ตามหนังสือจริง
แต่ว่าไม่เข้าใจว่ามันทำงานอย่างไร เพราะจากโค้ดชุดแรกไม่เห็นการใช้ @Product
และผลลัพธ์ที่ได้ ตรงคอลัมภ์ Product ส่วนใหญ่ก็ไม่มีคำว่า Bikes
ขอรบกวน ช่วยอธิบายเพิ่มเติมด้วยคะ

ขอถามเพิ่มอีกเรื่องนึง ผลลัพธ์ที่ได้จากข้อนี้แยกเป็นสองหน้าต่าง (น่าจะได้จากคำสั่ง EXEC หนึ่งหน้าต่าง และ SELECT อีกหนึ่งหน้าต่าง)
แต่วิธีการเรียกดูผลลัพธ์ ในรูปที่ 23.7 ตัวคิวรี่คล้ายกับข้อนี้ แต่ตย.นี้ได้ผลลัพธ์แค่หน้าต่างเดียว (อันนี้แค่สงสัยเฉยๆ ไม่ตอบไม่เป็นไรค่ะ)

ขอบคุณมากคะ

Naja

จำนวนข้อความ : 5
Join date : 23/04/2010

ขึ้นไปข้างบน Go down

เรียนรู้ด้วยตนเอง Database : บทที่ 23 รูปที่ 23.8 Empty ไม่มีการฉาย

ตั้งหัวข้อ  Admin 18th June 2010, 10:30 pm

จากโค้ด ไม่เห็นมีการนำตัวอินพุท @Product มาใช้
**** ใช่ครับ ตอนแรกตั้งใจจะใช้แล้วเปลี่ยนใจ แต่ลืมเอาออก


ผลลัพธ์ที่ได้จากข้อนี้แยกเป็นสองหน้าต่าง (น่าจะได้จากคำสั่ง EXEC หนึ่งหน้าต่าง และ SELECT อีกหนึ่งหน้าต่าง)
แต่ วิธีการเรียกดูผลลัพธ์ ในรูปที่ 23.7 ตัวคิวรี่คล้ายกับข้อนี้ แต่ตย.นี้ได้ผลลัพธ์แค่หน้าต่างเดียว
**** เพราะสพรอกซ์ บทที่ 23 รูปที่ 23.8 มีการฉาย แต่สพรอกซ์ในรูปที่ 23.7 ไม่มีการฉาย คงมีแต่การเซตค่าพารามิเตอร์เท่านั้น

Admin
Admin

จำนวนข้อความ : 215
Join date : 17/12/2009

http://laploy.forumotion.com

ขึ้นไปข้างบน Go down

ขึ้นไปข้างบน

- Similar topics

 
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ