หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
 eMbedded Visual Basic Tutorial  

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 eMbedded Visual Basic
 
 

บทที่ 4 ประกาศตัวแปร และ ฟังก์ชั่นการจัดการฐานข้อมูล

 

ขั้นตอนจะเริ่มต้นจากการประกาศตัวแปร และสร้าง ฟังก์ชั่นในการตรวจสอบ ว่าไฟล์ฐานข้อมูลมีอยู่ก่อนหน้าหรือไม่ หากมีไฟล์ฐานข้อมูลอยู่ ฟังก์ชั่นก็จะคืนค่า True (จริง) กลับมา และถ้าหากไม่จริง ก็จะคืนค่า False (เท็จ) กลับมา

จากนั้น จะเป็นการสร้างฟังก์ชั่น ต่างๆที่ใช้กับโปรเจค

    • connOpen เป็นฟังก์ชั่น ในการสร้างการติดต่อกับฐานข้อมูล
    • connClose เป็นฟังก์ชั่น ในการตัดการติดต่อกับฐานข้อมูล
    • ExecSQL เป็นฟังก์ชั่น ในการทำงานตามคำสั่ง SQL ที่ส่งมา
    • DBExists เป็นฟังก์ชั่น ในการตรวจสอบไฟล์ฐานข้อมูล ว่ามีการสร้างไว้ก่อนหน้าหรือไม่
    • DispErrors() เป็น sub ในการแสดงผลข้อผิดพลาด
  • ประกาศตัวแปร เพื่อเก็บค่าของชื่อไฟล์ของฐานข้อมูล ในส่วนของ General Declarations และตัวแปร อื่นๆที่จะนำมาใช้ในโปรเจค ดังตาราง
Option Explicit
Const gDBFileSpec = "\My Documents\test.cdb"

Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3

Public conn As ADOCE.Connection
  • สร้างฟังก์ชั่น connOpen เพื่อทำการติดต่อกับฐานข้อมูล


Function connOpen() As Boolean
  
  On Error Resume Next
  
  connOpen = True
  
  If conn Is Nothing Then
    Set conn = CreateObject("ADOCE.Connection.3.0")
    conn.Open gDBFileSpec
    If conn.Errors.Count > 0 Then
      MsgBox "errors in connOpen", vbOKOnly
      DispErrors
      connOpen = False
    End If
  End If
  
  On Error GoTo 0
    
End Function

ฟังก์ชั่น connOpen จะเริ่มต้นจาก การประกาศ On Error Resume Next เพื่อให้โปรแกรมสามารถทำงาน ต่อไป เมื่อเกิดข้อผิดพลาดเกิดขึ้น ต่อจากนั้นจะทำการตรวจสอบว่า มีการติดต่อฐานข้อมูลก่อนหน้าหรือไม่ (ตัวแปร conn มีค่าเป็น ค่าว่างหรือ Nothing) ถ้าไม่การติดต่อฐานข้อมูลอยู่ก่อน ให้ทำการสร้าง การติดต่อผ่านทางการสร้าง ออปเจ็ค ADOCE.Connection.3.0 หลังจากนั้นจะตรวจสอบข้อผิดพลาดว่าเกิดขึ้นหรือไม่ หากเกิดข้อผิดพลาดขึ้น จะทำการแสดงข้อความแจ้ง และแสดงรายละเอียดผ่านทาง DispErrors พร้อมทั้งกำหนดค่าส่งกลับของฟังก์ชั่น เป็นค่า False เพื่อให้ กระบวนการที่เรียกใช้ ฟังก์ชั่น ทราบว่า ไม่สามารถสร้างการติดต่อฐานข้อมูลได้

  • สร้างฟังก์ชั่น connClose เพื่อตัดการติดต่อกับฐานข้อมูล


Sub connClose()
  
  On Error Resume Next
  conn.Close
  Set conn = Nothing
  On Error GoTo 0

End Sub

การสั่งเพื่อตัดการติดต่อกับฐานข้อมูล ทำโดยสั่งใช้เมธอด Close และ ลบค่าของตัวแปร conn ให้เป็นค่าว่าง

  • สร้างฟังก์ชั่น ExecSQL เพื่อให้ฐานข้อมูล ทำตามคำสั่ง SQL ที่ส่งมา


Function ExecSQL(paramSQL As String, paramSuccess As String, paramErr As String) As Boolean
  
  If DBExists(gDBFileSpec) = True Then
  
    connOpen
    On Error Resume Next
    conn.Execute (paramSQL)
    On Error GoTo 0
    If conn.Errors.Count > 0 Then
      ExecSQL = False
      txtDB.Text = paramErr
    Else
      ExecSQL = True
      txtDB.Text = paramSuccess
    End If
    connClose
  
  Else
    
    MsgBox "Database " & gDBFileSpec & " does not exist!", vbOKOnly, "No database"
  
  End If

End Function

การทำงานเริ่มจากการตรวจสอบไฟล์ฐานข้อมูล ว่ามีอยู่หรือไม่ ถ้าไม่มีไฟล์ฐานข้อมูล จะมีการแจ้งข้อผิดพลาด แต่ถ้าหากว่ามีไฟล์ ฐานข้อมูล ก็จะทำการสร้างการติดต่อ หลังจากนั้นจะทำการสั่งให้ฐานข้อมูลทำงานตาม สั่ง SQL ที่ส่งเข้า ทำให้สามารถสั่งให้ฐานข้อมูล เพิ่ม, ลบ, แสดง ข้อมูลออกมาได้

  • สร้างฟังก์ชั่น DBExists เพื่อใช้ ในการตรวจสอบไฟล์ฐานข้อมูล ว่ามีการสร้างไว้ก่อนหน้าหรือไม่
Private Function DBExists(paramFileSpec As String) As Boolean
 
  If FileSystem1.Dir(paramFileSpec) <> "" Then
    DBExists = True
  Else
    DBExists = False
  End If

End Function

การทำงานจะเป็นการตรวจสอบ โดยใช้เมธอด Dir ของ FileSystem1 ที่เราได้ทำการสร้างโดยดับเบิ้ลคลิก มาวางไว์บน Form จากขั้นตอนแรกๆ ที่ผ่านมา ฟังก์ชั่นนี้ จะส่งค่ากลับเป็น True (จริง) เป็นมีไฟล์ฐานข้อมูล และส่งค่ากลับเป็น False (เท็จ) เมื่อ ไม่พบไฟล์ ฐานข้อมูล

  • สร้าง Sub DispErrors เพื่อใช้ ในการแสดงผลข้อผิดพลาดที่เกิดขึ้น
Sub DispErrors()
Dim dispErr As String
Dim arb1 As Integer
Dim arb2 As Integer
Dim ADOErr As ADOCE.Error

  For arb1 = 0 To conn.Errors.Count - 1
    Set ADOErr = conn.Errors(arb1)
    dispErr = "desc = " & ADOErr.Description & vbCrLf
    dispErr = dispErr & "number = " & Hex(ADOErr.Number) & vbCrLf
    dispErr = dispErr & "nativeerror = " & ADOErr.NativeError & vbCrLf
    dispErr = dispErr & "source = " & ADOErr.Source
    MsgBox dispErr, vbCritical, strTitleBar
  Next arb1

End Sub

การตรวจสอบข้อผิดพลาด ของ sub นี้จะกระทำผ่านทาง Property ต่างๆของ ADOErr ที่รับค่าจาก ข้อผิดพลาดของ conn (ค่าจาก conn.Errors) ซึ่งมีอยู่หลายรายการ และอาศัยการวนลูป เพื่อดึงรายการข้อผิดพลาดทั้งหมด ขึ้นมาแสดง

มีการใช้งาน On Error Resume Next เพื่อให้โปรแกรม สามารถทำงานต่อไปได้เมื่อเกิดข้อผิดพลาดขึ้น และมีการใช้ On Error GoTo 0 เพื่อสั่งให้สิ้นสุดความพยายามในการทำงานต่อ จากการ Resume Next ทำให้เป็นการสิ้นสุดการทำงาน ดังนั้นจะเห็นได้ว่า มีการสั่งงานของชุดคำสั่งทั้งสอง คู่กันเสมอ ในตัวอย่างนี้

 

BACK

คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th