หน้าแรก
 การบ้าน
  C/C++ new
  Java new
 Sourcecode.TV
  Android
  Blackberry
  C/C++
  Java
  Linux
  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
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  DoodeeHosting
  รับออกแบบ พัฒนาเว็บไซต์
  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
  ถ้าผมต้องการเว็บที่พัฒนาด้วย HTML5 ...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒนาด้วย HTML5 ...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะคับ
งานเล...

2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลองศึกษาเองได...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก่อนได้นะคับ...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต่อได้ครับ 08...
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
  ถ้าเขียน php ก็ใช้ curl ส่...
2017-04-20 01:04:20
  เขียนโค้ดไม่เป็น เอาโค้ดไป ...
2017-03-27 12:50:54
  คือสงสัยว่าทำไม ต้องอัพเดทด...
2017-03-27 12:37:20
  ทดสอบการตอบ...
2017-02-22 13:10:24
  ลองอีกวิธีเขียน recursive f...
2017-02-14 13:11:03
  อยากได้ โค้ดระบบห้องสมุดมาก...
2017-01-30 11:45:28
  ทำ for-loop ซ้อนกัน
โดย...

2017-01-28 16:00:12
  เดาว่าใช้ Stack เข้ามาช่วย...
2017-01-28 15:57:09
  ยืมเสร็จแล้ว ก็เอามาคืนด้วย...
2016-10-27 14:56:42
  ยืมโค้ดหน่อยครับ...
2016-10-27 14:49:44
  Homework comment
  ทำเอง งง เอง กะลังทำใหม่ค่ะ ^^...
2017-04-18 18:40:46
  ทำเอง งง เอง กะลังทำใหม่ค่ะ ^^...
2017-04-18 18:37:54
  ประเด็นแรก flowchart มันไม่มีภ...
2017-04-18 17:43:33
  อยากได้ flowchart ค่ะ เป็นภาษา...
2017-04-18 16:25:29
  kungking คำถามคืออะไรครับ ?...
2017-03-18 23:28:36
  จงเขียนโปรแกรมแสดงผลรวมของตัวเ...
2017-03-06 10:56:25
  ก็โค้ดทำงานคล้ายๆแบบนี้หละ แต่...
2016-09-06 01:00:12
  ผมอยากทราบว่าโค้ดนับถอยหลังเป็...
2016-09-05 09:31:27
  ได้โค้ดแล้ว ลองศึกษาแล้วเขียนผ...
2016-04-22 00:47:49
  ขอแผนผังของโปรแกรมนับตัวอักษรภ...
2016-04-21 19:24:55
  Article comment
  ครับ คุณ "ติด" แล้วลองนึกต่อว่...
2016-06-18 15:21:09
  vs2008 c# ครับ ขอบคุณครับ...
2016-06-17 14:39:30
  ผมใช้ vs c# ทำตามทุขั้นตอนแต่ต...
2016-06-17 14:37:44
  ต้องวิเคราะห์ครับ "ว่าจริงๆ ส่...
2016-03-12 23:36:05
  ผมส่งข้อความในวง LAN ได้เฉพาะค...
2016-03-12 18:25:42
  โปรแกรม Terminal บน Mac ก็เป็น...
2016-02-16 11:02:01
  โปรแกรม Terminal คืออะไรหรอคะ...
2016-02-16 05:58:21
  ไปตั้ง โครงการไว้เลยครับ ที่
2016-01-25 13:29:55
  ด่วน!!! ต้องการคนเขียน App โดย...
2016-01-25 10:56:34
  ผมได้ทำตามคำแนะนำจนสิ้นสุดแล้ว...
2016-01-20 23:30:25
  9Mcode comment
  อยากได้...
2014-02-21 08:52:19

Link Exchange

อัตราค่าโฆษณา
Statistics of Sourcecode in Thailand
 
 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

สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
ไขควงสำหรับเครื่อง Macbook Air/Pro
ไขควง สำหรับแกะเครื่อง Macbook Air/Pro (300บาท)
HDMI เข้า 3 ออก  1 มีรีโมท
HDMI เข้า 3 ออก 1 มีรีโมท (350บาท)
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
9M Blog บอกเล่าเรื่องราว การเขียนโปรแกรมของ นายเอ็ม
บริการ ถ่ายภาพรับปริญญา
OrmSin.com: ขายหนังสืองานฝีมือไทย-ญี่ปุ่น-จีน (country crafts)
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ
Freelance รับพัฒนาโปรแกรม

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

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