Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > มีปัญหาเรื่องของ ค่าใน Store procedure ครับผม สวัสดีครับผมมีปัญหาเรื่องของ ค่าใน Store procedure ครับ



 

มีปัญหาเรื่องของ ค่าใน Store procedure ครับผม สวัสดีครับผมมีปัญหาเรื่องของ ค่าใน Store procedure ครับ

 



Topic : 043138

Guest




สวัสดีครับผมมีปัญหาเรื่องของ ค่าใน Store procedure ครับผม คือเพิ่งหัวเขียนด้วย
ปัญหาคือ ผมต้องการเก็ย ข้อมูลที่ select ไว้ในตัวแปลสักตัวนั้นค่อ @StockStory แล้วนำตัวนี้ไปselect อีกรอบเพื่อได้ข้อมูลมาใช้ครับ

โคสคือ

CREATE PROCEDURE [dbo].[SP_Price_ReceiveID](
@ItemID varchar(15),
@Qunitity int,
@i int = 0,
@StockStory varchar(100) =''
) AS


WHILE @i< (SELECT COUNT(dbo.tbItemReceive.ItemReceiveID) AS Expr1
FROM dbo.tbItemReceive INNER JOIN
dbo.tbItemReceiveItem ON dbo.tbItemReceive.ItemReceiveID = dbo.tbItemReceiveItem.ItemReceiveID
WHERE (dbo.tbItemReceiveItem.QuantityReveive - dbo.tbItemReceiveItem.QuantityDistribute > 0) AND (dbo.tbItemReceiveItem.ItemID = @ItemID))
BEGIN


set @qunitity = (@qunitity-(SELECT TOP 1 dbo.tbItemReceiveItem.QuantityReveive - dbo.tbItemReceiveItem.QuantityDistribute AS countItme
FROM dbo.tbItemReceive INNER JOIN
dbo.tbItemReceiveItem ON dbo.tbItemReceive.ItemReceiveID = dbo.tbItemReceiveItem.ItemReceiveID
WHERE dbo.tbItemReceiveItem.ItemReceiveID NOT IN(@StockStory) and (dbo.tbItemReceiveItem.QuantityReveive - dbo.tbItemReceiveItem.QuantityDistribute > 0) AND (dbo.tbItemReceiveItem.ItemID = @ItemID)))

set @StockStory =
@StockStory +((SELECT TOP 1 CONVERT(varchar , dbo.tbItemReceiveItem.ItemReceiveID)+','
FROM dbo.tbItemReceive INNER JOIN
dbo.tbItemReceiveItem ON dbo.tbItemReceive.ItemReceiveID = dbo.tbItemReceiveItem.ItemReceiveID
WHERE dbo.tbItemReceiveItem.ItemReceiveID NOT IN(@StockStory) and (dbo.tbItemReceiveItem.QuantityReveive - dbo.tbItemReceiveItem.QuantityDistribute > 0) AND (dbo.tbItemReceiveItem.ItemID = @ItemID)))

if @qunitity >0
begin
set @i = @i+1
end
else
begin
BREAK
end
END


SELECT *
FROM dbo.tbItemReceive INNER JOIN
dbo.tbItemReceiveItem ON dbo.tbItemReceive.ItemReceiveID = dbo.tbItemReceiveItem.ItemReceiveID
WHERE dbo.tbItemReceiveItem.ItemReceiveID IN(@StockStory)
GO



แล้ว Error มันขึ้นว่า
Syntax error converting the varchar value '2,' to a column of data type int.
จะมีทางแก้ยังงัยครับช่วยหน่อยนะครับขอบคุณครับผม



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-05-21 17:19:42 By : โย View : 1169 Reply : 2
 

 

No. 1



โพสกระทู้ ( 198 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้าจะประกาศตัวแปรแล้วรอรับค่าต้องประกาศแบบนี้คับ

declare @StockStory varchar(100)


จะประกาศไว้ตรงส่วนนั้นไม่ได้นะคับ






Date : 2010-05-21 19:45:53 By : anucham
 


 

No. 2



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ต้องเปลี่ยนเป็น DYNAMIC SQL ทั้งหมดค่ะ
เพราะใน IN OPERATOR คุณจะใช้ตัวแปรแบบนี้ไม่ได้เลย
ต้อง ตัดต่อเป็น COMMAND STRING แบบใน .NET เสียก่อน
แล้วค่อย EXECUTE อีกที

แต่เนื่อจากเป็นการ EXECUTE แบบ COMMAND TEXT จะรับส่งค่าให้กันไม่ได้
ดังนั้นเมื่อมีส่วนหนึ่งเป็น DYNAMIC SQL ทั้งหมดเพื่อให้รับค่าได้ต้องเป็น DYNAMIC SQL
ทั้งหมดค่ะ

เมื่อกี้เขียนสะยาวพอกด submit กำหายหมดสงสัยจะนานไปหน่อย T ^ T

น่าจะย้ายไปเขียนที่ .NET นะคะ จะลดความซับซ้อนได้เยอะ
ถึงจะช้าไปหน่อยแต่จะเขียนง่ายเข้าใจง่าย
ซ่อมบำรุงง่ายค่ะ

ปล. มันคล้ายๆ RECURSIVE FUNCTION นะคะเอาไปทำที่ .NET ดีแล้วค่ะ
Date : 2010-05-21 20:58:59 By : blurEyes
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีปัญหาเรื่องของ ค่าใน Store procedure ครับผม สวัสดีครับผมมีปัญหาเรื่องของ ค่าใน Store procedure ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่