จะรู้ได้ไงว่ามันเชื่อมต่อกันอยู่ ?
กระทู้เก่าบอร์ด อ.Yeadram

 1,667   7
URL.หัวข้อ / URL
จะรู้ได้ไงว่ามันเชื่อมต่อกันอยู่ ?

ไม่มีใครถาม... ผมถามยาวเลยนะครับ
คือผมมี Access ตัวนึงที่เชื่อมต่อกับ SQL Server
ใช้วิธีการ link เข้ามา... เวลาจะใช้งานต้อง login เข้าไป

ปัญหาไม่ได้อยู่ตรง login นะครับ ปัญหาอยู่ที่เวลา login ไปแล้ว ใช้งานไปสักพักหนึ่ง หรือ ปล่อยโปรแกรมทิ้งไว้ แล้วไปใช้โปรแกรมอื่น พอกลับมาใช้อีกครั้ง เหมือนกับว่าไอ้ตัวที่เชื่อมต่อกับ SQL database มันจะหลุดไป

สิ่งที่ผมอยากได้ก็คือโค๊ดสักชุดที่จะใช้เช็คว่า ไอ้ link ที่เชื่อต่อกับ SQL Database มันยังเชื่อมกันอยู่หรือไม่

หมายเหตุ: เวลาตอนที่ login ผมสร้าง Form สำหรับ login เข้าไป ซึ่งจะไม่เหมือนกับหน้าจอที่เด้งขึ้นมาเวลาที่การเชื่อมต่อมันหลุดไปแล้ว

7 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00180
ผมว่าน่าจะเป็นที่ค่า Idle Connection Timeout ครับ ต้องกำหนดเป็น 0 แต่ค่านี้อยู่ที่ไหนผมไม่ทราบ เพราะไม่ได้ลงเอาไว้ตอนนี้ ไปค้นดู บางคนบอกว่า

1. In the "Connect to server" dialog box Click on "Option >>"
2. Navigate to "Connection properties" Tab .
3. Therein you will find this property and you can set it accordingly .

ส่วนอีกที่บอกอีกแห่ง http://msdn.microsoft.com/en-us/library/ms174921.aspx

ลองดุนะครับ
2 @R00184
จะลองไปอ่านดูครับ ขอบคุณมากครับ....
3 @R00203
ไปที่ connection property
แก้ QUERY TIME-OUT =0
4 @R00218
งงครับ... krathok-man
ผมหมายถึงจะใช้ code check นะครับ
5 @R00220
อ๋อ CODE ผมไม่รู้ครับ แต่ก าร setQUERY TIME-OUT =0
นั้น หมายความว่า DATABASE SQL จะไม่ตัดการเชื่อมต่อกับคุณ
จนกว่าคุณจะปิด APPLICATION แม้คุณจะไม่ได้ใช้มันก็ตาม
ดังนั้น ผมเห็นว่า ไม่จำเป็นต้อง CHECK นะครับ
6 @R00223
สิ่งที่อยากได้ก็คือ "โค๊ด" สักชุดที่จะใช้เช็คว่า ไอ้ link ที่เชื่อต่อกับ SQL Database มันยังเชื่อมกันอยู่หรือไม่

โค้ดตัวนี้ ไม่ได้รันตัวเองตลอดเวลาแน่ๆ เพราะไม่ใช่โทรจัน เหอๆ
ผมไม่ได้ตามไปอ่าน ตามลิงค์ที่ อ.สันติสุขให้มาหรอกนะครับ แต่สงสัยว่ามีทางง่ายๆ อยู่อย่างหนึ่ง ทำไม คุณแดนไม่เลือกวิธีนั้น หรือว่าทำไปแล้วไม่เกิดผล, มีผลข้างเคียง ถือว่าผมขอความรู้ไปด้วยก็ได้ครับ

วิธีที่ผมคิดออกมาได้คือ เมื่อต้องการเช็คสถานะ ให้ลองเปิดตารางดู ถ้าเปิดแล้วมี "error ที่แสดงว่า การเชื่อมต่อหลุด" ก็แสดงว่า หลุด ถ้าไม่มี error ตัวนี้ ก็ได้ตรงกันข้าม
function checkconn() as integer
on error resume next
docmd.open actable, สุ่มตารางที่1
if err.number =..... then
docmd.open actable, สุ่มตารางที่2
if err.number =..... then
checkconn =false
exit function
end if
end if
checkconn =true
end function
7 @R00229
จะลองดูครับ...

แต่อย่างนี้ครับ ถ้าสมมุติมันหลุดไปแล้ว...

ก่อนที่มันจะเกิด Error ให้เรา check ได้ มันจะเด้งหน้าจอ login ของ SQL Server ขึ้นมาให้ก่อนนะครับ พอนึกภาพออกไหมครับ
พอเรา หรือ user คลิ๊ก cencel หรือ ใส่ password ที่ไม่ถูกต้องมันถึงจะ error นะครับ


ขอเล่าหน่อยนะ : ตอนเริ่มใช้โปรแกรม ผมทำหน้าจอ login ขึ้นมาให้ user ใส่ id กับ password
โดย password ที่ user ใส่จะถูก encrypt(หรือพูดง่ายว่าแปลงเป็นตัวอักษรอีกชุดนึง)ให้ตรงกับ password ที่เก็บไว้ใน data
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2651s