ใช้ SELECT ธรรมดามานานแล้วครับ อยากเปลี่ยนเป็น Store แต่ งง อะครับ ผมใช้ MySql ครับ จะเขียนC# เรียก Store ใน MySql แต่สร้าง Store ยังไม่ทราบว่าถูกต้องหรือไม่ครับ ผมสร้าง Store โดยใช้ SQL อันนี้รันใน MySql เลยครับ (ถูกต้องหรือไม่ครับ)
Code (SQL)
DROP PROCEDURE IF EXISTS spEMPLOYEE$$
CREATE PROCEDURE spEMPLOYEE()
BEGIN
SELECT * FROM EMPLOYEE where '1'='1';
END$$
อยากทราบว่า Mysql เค้าสร้าง Store กันยังไงหรอครับ และ วิธีการเรียกใช้ใน C# แบบมีพารามิเตอร์อะไรแบบนี้อะครับ
(คำว่าพารามิเตอร์ที่ผมเข้าใจคือ WHERE อะไร ก็ว่าไปอย่างนั้นหรือเปล่าครับ)
ขอบคุณมากครับ
2. ทดลองสร้าง Store Procedure ใน MySQL แบบง่ายๆ ที่มีการส่งพารามิเตอร์เข้าไป (อ้างอิงตัวอย่างจากเว็บไซต์ข้อ 0)
Code (SQL)
DELIMITER $$
CREATE PROCEDURE CountOrderByStatus(
IN orderStatus VARCHAR(25),
OUT total INT)
BEGIN
SELECT count(orderNumber)
INTO total
FROM orders
WHERE status = orderStatus;
END$$
DELIMITER ;
อ่านดูก็เข้าใจได้ว่า
Store Procedure ตัวนี้มีชื่อว่า "CountOrderByStatus"
มีการรับค่าเพียง 1 ค่าคือ orderStatus เป็นชนิด VARCHAR(25) (string ใน C#)
มีการส่งค่ากลับเป็น INT (int ใน C#) ชื่อว่า total
ชุดคำสั่งคือ ทำการ Select จำนวน orderNumber เข้าไปใส่ที่ตัวแปร total จากตาราง orders โดยใช้เงื่อนไข status เท่ากับ orderStatus (ค่าที่ส่งเข้ามา) อ่านโปรแกรมกลับไปแบบนี้จะสามารถสร้างฐานข้อมูลตามโครงสร้างของตารางได้
ชื่อตาราง orders มีรายละเอียดดังนี้
===========================================
ฟิวล์ ชนิด
===========================================
id INT
orderNumber VARCHAR(30)
status VARCHAR(25)
ทำการ insert ข้อมูลเข้าไปแบบสุ่มแล้วลอง Run Store Procedure ตัวนี้ดู