ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL
2 posters
หน้า 1 จาก 1
ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL
สวัสดีครับ อาจารย์ลาภลอย
ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL ว่าจะทำแบบไหนดีช่วยแนะนำให้หน่อย คือตอนนี้ผมเขียนโปรแกรมที่ติดต่อกับ LDAP เป็นการจัดการ Domain Controller เรียบร้อยแล้ว โดยมีรายชื่อผู้ใช้งานอยู่ที่ SQL ทั้งหมดฉนั้นเวลาเขาแก้ไขข้อมูลที่ SQL จะให้ไป Update ที่ Domain ด้วย ผมคิดว่าจะให้ trigger แต่จะสั่งให้ทำงานอย่างไร ผมเคยลองเอา Class ของผมใส่ไปแล้ว Reference มันไม่ยอมรับ Class ภายนอกทั้งที่ Compile ผ่านแต่ไม่ทำงานครับ ไม่ทราบมีวิธีอื่นมั้ยครับ
ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL ว่าจะทำแบบไหนดีช่วยแนะนำให้หน่อย คือตอนนี้ผมเขียนโปรแกรมที่ติดต่อกับ LDAP เป็นการจัดการ Domain Controller เรียบร้อยแล้ว โดยมีรายชื่อผู้ใช้งานอยู่ที่ SQL ทั้งหมดฉนั้นเวลาเขาแก้ไขข้อมูลที่ SQL จะให้ไป Update ที่ Domain ด้วย ผมคิดว่าจะให้ trigger แต่จะสั่งให้ทำงานอย่างไร ผมเคยลองเอา Class ของผมใส่ไปแล้ว Reference มันไม่ยอมรับ Class ภายนอกทั้งที่ Compile ผ่านแต่ไม่ทำงานครับ ไม่ทราบมีวิธีอื่นมั้ยครับ
vfox- จำนวนข้อความ : 7
Join date : 21/05/2010
Re: ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL
แบบว่าจะใช้ SQL ที่เก็บรายละเอียดของผู้ใช้งานทั้งหมดของโรงเรียน ซึ่งเป็น Domain Controller เมื่อมีการเข้าออก(เด็กใหม่/ลาออก) จะต้องมีการเพิ่มลดใน Domain Controller ด้วย เพื่อสะดวกก็เลยมีความคิดที่จะเอาไปผูกกับฐานข้อมูลเสีบเลยไม่ต้องมา Update รายชื่อผู้ใช่ใน Domain
คือจะความสามารถของ trigger เพื่อจับ Event การเปลี่ยนแปลง ทุกวันนี้ถ้ามีการจำหน่ายใครสักคน ต้องรออีกหลายวันที่จะไป Disable การใช้งาน ซึงอาจไม่ทันการได้ เหมือนกับการผูกติดกับฝ่ายบุคคลถ้ามีการลาออก ก็สามารถยกเลิกการได้เลย
ขอบพระคุณล่วงหน้าครับ
คือจะความสามารถของ trigger เพื่อจับ Event การเปลี่ยนแปลง ทุกวันนี้ถ้ามีการจำหน่ายใครสักคน ต้องรออีกหลายวันที่จะไป Disable การใช้งาน ซึงอาจไม่ทันการได้ เหมือนกับการผูกติดกับฝ่ายบุคคลถ้ามีการลาออก ก็สามารถยกเลิกการได้เลย
ขอบพระคุณล่วงหน้าครับ
vfox- จำนวนข้อความ : 7
Join date : 21/05/2010
อย่าติและอย่าหลู่
สวัสดีครับคุณวีฟอก
ผมอ่านคำถามที่คุณเขียนมาใหม่แล้ว ยิ่งไม่เข้าใจมากกว่าเดิมเสียอีก คุณจงอย่าติและอย่าหลู่ผมเลยนะครับ แต่ผมสงสัยว่าตัวผมเองคงจะเข้าใจอะไรยากไปหน่อย ดังนั้น ขอให้คุณจงช่วยเขียนเล่าความเป็นมาเพิ่มเติมอีกสักเล็กน้อย หรือลองหาทางเล่าในมุมมองอื่นๆ ไม่แน่ว่าการทำเช่นนั้น อาจจะทำให้ผมเข้าใจปัญหาของคุณก็ได้
ลาภลอย
ผมอ่านคำถามที่คุณเขียนมาใหม่แล้ว ยิ่งไม่เข้าใจมากกว่าเดิมเสียอีก คุณจงอย่าติและอย่าหลู่ผมเลยนะครับ แต่ผมสงสัยว่าตัวผมเองคงจะเข้าใจอะไรยากไปหน่อย ดังนั้น ขอให้คุณจงช่วยเขียนเล่าความเป็นมาเพิ่มเติมอีกสักเล็กน้อย หรือลองหาทางเล่าในมุมมองอื่นๆ ไม่แน่ว่าการทำเช่นนั้น อาจจะทำให้ผมเข้าใจปัญหาของคุณก็ได้
ลาภลอย
Re: ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL
ต้องขอโทษอาจารย์ด้วยที่เขียนสั้นไปหน่อย ผมเขียนโปรแกรมให้โรงเรียนซึ่งมีนักเรียนเข้าออกทีละมากๆๆ จึ่งเป็นเรื่องลำบากมากที่จะ Update ผู้ใช้งานบนโดเมน (นักเรียน บุคลากรทั้งโรงเรียนต้องผ่านโดเมน) จึงมีความคิดที่จะเอาฐานข้อมูลประวัตินักเรียน บุคลาการทั้งหมดเป็นตัวกำหนดในการ เพิ่มลดผู้ใช้งานบนโดเมน หรือ Disable ผู้ใช้งานในกรณีพักงานเป็นต้น ซึ่งทุกวันนี้ต้องมาเพิ่มผู้ใช้ในโดเมนตอนเปิดเรียนหรือรับนักเรียนใหม่ทุกครั้ง รวมทั้งต้องมาคอยยกเลิกผู้ใช้งานบนโดเมนเมื่อนักเรียนออกจากโรงเรียนเป็น ซึ่งต้องใช้เวลาเหมือนกัน
ฉนั้นจึงมีความคิดว่าถ้ามีการเพิ่มรายชื่อที่ฝ่ายทะเบียน ก็ให้ไปเพิ่มชื่อผู้ใช้ที่โดเมนด้วยโดยผ่าน trigger ไม่ทราบว่าจะทำได้หรือเปล่าซึ่งโปรแกรมที่เพิ่มลดของโดเมนผมได้เขียนเป็น Class ด้วย C# ไว้แล้ว
ถ้าไม่ได้จริงๆ ผมคงอาศัย Windows Service
ปล.ทางเราให้อนุญาตผู้ใช้งานสามารถแก้ไข password ได้เองผ่านเว็บ
ฉนั้นจึงมีความคิดว่าถ้ามีการเพิ่มรายชื่อที่ฝ่ายทะเบียน ก็ให้ไปเพิ่มชื่อผู้ใช้ที่โดเมนด้วยโดยผ่าน trigger ไม่ทราบว่าจะทำได้หรือเปล่าซึ่งโปรแกรมที่เพิ่มลดของโดเมนผมได้เขียนเป็น Class ด้วย C# ไว้แล้ว
ถ้าไม่ได้จริงๆ ผมคงอาศัย Windows Service
ปล.ทางเราให้อนุญาตผู้ใช้งานสามารถแก้ไข password ได้เองผ่านเว็บ
vfox- จำนวนข้อความ : 7
Join date : 21/05/2010
เริ่มเข้าใจเล็กน้อย
ที่คุณวีฟอกเขียนมาหลังสุดนี้ผมเริ่มเข้าใจเล็กน้อย แต่ยังไม่แน่ใจว่าจะถูกต้องหรือไม่
สรุปว่ามีอยู่สองประเด็นคือ
1. เมื่อเกิดการเพิ่ม user เช่นมีนักเรียนใหม่ จะมีเจ้าหน้าที่ป้อนข้อมูลเข้าในดาต้าเบส
2. หลังจากนั้นจะ add user เข้าสู่รายการผู้ใช้ใน domain server
สิ่งที่ต้องการคือเมื่อเพิ่ม (หรือลบหรือ disable ฯลฯ) user และเจ้าหน้าที่ป้อนข้อมูลเข้าในดาต้าเบส ต้องการให้ดาต้าเบสเซฟเวอร์กระตุ้นการทำงานของทริกเกอร์ เพื่อรันโค้ดซึ่งทำหน้าที่ add user เข้าสู่รายการผู้ใช้ใน domain server ใช่ไหม???
ถ้าหากความต้องการเป็นอย่างนี้ และท่านใช้ MS SQL 2005 ขึ้นไป ให้นำโค้ดภาษา C# เกี่ยวกับการ add domain ที่ท่านเขียนไว้มาทำเป็น trigger ได้โดยตรง เพราะ MS SQL 2005 ขึ้นไป ใช้ภาษา CLR ได้
สรุปว่ามีอยู่สองประเด็นคือ
1. เมื่อเกิดการเพิ่ม user เช่นมีนักเรียนใหม่ จะมีเจ้าหน้าที่ป้อนข้อมูลเข้าในดาต้าเบส
2. หลังจากนั้นจะ add user เข้าสู่รายการผู้ใช้ใน domain server
สิ่งที่ต้องการคือเมื่อเพิ่ม (หรือลบหรือ disable ฯลฯ) user และเจ้าหน้าที่ป้อนข้อมูลเข้าในดาต้าเบส ต้องการให้ดาต้าเบสเซฟเวอร์กระตุ้นการทำงานของทริกเกอร์ เพื่อรันโค้ดซึ่งทำหน้าที่ add user เข้าสู่รายการผู้ใช้ใน domain server ใช่ไหม???
ถ้าหากความต้องการเป็นอย่างนี้ และท่านใช้ MS SQL 2005 ขึ้นไป ให้นำโค้ดภาษา C# เกี่ยวกับการ add domain ที่ท่านเขียนไว้มาทำเป็น trigger ได้โดยตรง เพราะ MS SQL 2005 ขึ้นไป ใช้ภาษา CLR ได้
Re: ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL
ใช่เลยครับ ผมเองก็คุยกับเครื่องเป็นหลักไม่ค่อยได้คุยกับคน เลยไม่คุยไม่รู้เรื่องต้องขอโทษด้วยครับ 5555555
ผมลองทำแล้วแต่ไม่ได้ครับไม่ทราบว่าติดอะไร ที่แน่ๆๆ ผมเพิ่ม System.DirectoryServices ไม่ได้ครับหรือว่าจะ compile เป็น dll ก่อนแล้วค่อยเรียกใช้ ยังติดอยู่หลายเดือนแล้ว ไม่ทราบอาจารย์พอมีตัวอย่างให้ดูหน่อยมั้ยครับ
ผมลองทำแล้วแต่ไม่ได้ครับไม่ทราบว่าติดอะไร ที่แน่ๆๆ ผมเพิ่ม System.DirectoryServices ไม่ได้ครับหรือว่าจะ compile เป็น dll ก่อนแล้วค่อยเรียกใช้ ยังติดอยู่หลายเดือนแล้ว ไม่ทราบอาจารย์พอมีตัวอย่างให้ดูหน่อยมั้ยครับ
vfox- จำนวนข้อความ : 7
Join date : 21/05/2010
ทำไมไม่เขียน
ดูตัวอย่างการนิยามทริกเกอร์เป็นคลาสในภาษา C# ได้จากบทความนี้
http://www.c-sharpcorner.com/UploadFile/pk_khuman/ManagedTrigersUsingCSharp02202007230729PM/ManagedTrigersUsingCSharp.aspx
ทำไมไม่เขียนทริกเกอร์สั้นๆ ให้มีเพียงคำสั่งเรียกหาโปรแกรม update domain ที่คุณทำไว้แล้ว?
http://www.c-sharpcorner.com/UploadFile/pk_khuman/ManagedTrigersUsingCSharp02202007230729PM/ManagedTrigersUsingCSharp.aspx
ทำไมไม่เขียนทริกเกอร์สั้นๆ ให้มีเพียงคำสั่งเรียกหาโปรแกรม update domain ที่คุณทำไว้แล้ว?
Re: ขอคำปรึกษาเกี่ยวกับการรันโปรแกรมภายนอก SQL
ขอบพระคุณมากครับ
ได้เรื่องอย่างไรแล้วจะมาเล่าสู่กันฟังอีกที ตอนนี้ยังทำไม่ได้เพราะ MSDN บอกว่า Support class แค่
mscorlib
System
System.Configuration
System.Data
System.Data.OracleClient
System.Data.SqlXml
System.Deployment
System.Security
System.Transactions
System.Web.Services
System.Xml
และไม่สนับสนุนการสร้าง assembly
Unsupported libraries can still be called from your managed stored procedures, triggers, user-defined functions, user-defined types, and user-defined aggregates. The unsupported library must first be registered in the SQL Server database, using the CREATE ASSEMBLY statement, before it can be used in your code. Any unsupported library that is registered and run on the server should be reviewed and tested for security and reliability.
For example, the System.DirectoryServices namespace is not supported. You must register the System.DirectoryServices.dll assembly with UNSAFE permissions before you can call it from your code. The UNSAFE permission is necessary because classes in the System.DirectoryServices namespace do not meet the requirements for SAFE or EXTERNAL_ACCESS.
ได้เรื่องอย่างไรแล้วจะมาเล่าสู่กันฟังอีกที ตอนนี้ยังทำไม่ได้เพราะ MSDN บอกว่า Support class แค่
mscorlib
System
System.Configuration
System.Data
System.Data.OracleClient
System.Data.SqlXml
System.Deployment
System.Security
System.Transactions
System.Web.Services
System.Xml
และไม่สนับสนุนการสร้าง assembly
Unsupported libraries can still be called from your managed stored procedures, triggers, user-defined functions, user-defined types, and user-defined aggregates. The unsupported library must first be registered in the SQL Server database, using the CREATE ASSEMBLY statement, before it can be used in your code. Any unsupported library that is registered and run on the server should be reviewed and tested for security and reliability.
For example, the System.DirectoryServices namespace is not supported. You must register the System.DirectoryServices.dll assembly with UNSAFE permissions before you can call it from your code. The UNSAFE permission is necessary because classes in the System.DirectoryServices namespace do not meet the requirements for SAFE or EXTERNAL_ACCESS.
vfox- จำนวนข้อความ : 7
Join date : 21/05/2010
หน้า 1 จาก 1
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ
|
|