XÁC ĐỊNH LỆNH VÀ TRẢ LỜI DỊCH VỤ

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống nhắn tin nội bộ dựa trên các thiết bị thông tin không dây (Trang 58 - 60)

Cơ sở dữ liệu

5.7 XÁC ĐỊNH LỆNH VÀ TRẢ LỜI DỊCH VỤ

Điều quan trọng sau khi đọc được nội dung của tin nhắn là cần phải xác định được lệnh dịch vụ đã được gửi qua tin nhắn. Để làm được điều đó chương trình SMSComm phải xác định chuỗi ký tự liên tục không chứa ký tự „cách‟ sp đầu tiên là tên của lệnh. Và cũng giống như các cú pháp lệnh khác, SMSComm cũng phải sử dụng các ký tự đặc biệt như ký tự cách (space) hoặc „:‟ để phân biệt lệnh và tham số.

Để xác định được lệnh và các tham số, cần qui định cú pháp chung của các lệnh , ví dụ:

<lệnh> <thơngsố>:<thamsố1>,<thamsố2>,v. v... Các tin nhắn có nội dung khác với cú pháp qui định sẽ được hiểu như là các lệnh cần trợ giúp, khi đó SMSComm sẽ gửi trả lại một tin nhắn nhằm trợ giúp người dùng.

Xác định lệnh dịch vụ

Chương trình 5-7 dưới đây mơ tả cách SMSComm xử lý nội dung tin nhắn xác định lệnh dịch vụ.

Chƣong trình 5-7

Private Sub SMSCheck() Dim ServiceCMD

„ Nếu tin nhắn có dưới một ký tự thì gửi trả lại tin nhắn hướng „dẫn

If Len(MsgContents) <= 1 Then

HelpReturn „ gọi chương trình trả lời hướng dẫn

Exit Sub End If

„Xác định lệnh bằng chuỗi ký tự liên tục trc khi

„xuất hiện ký tự cách (space) đầu tiên

If InStr(1, MsgContents, " ", vbTextCompare) = 0 Then ServiceCMD = UCase(MsgContents)

Else

ServiceCMD = UCase(Left(MsgContents, InStr(1, MsgContents, " ", vbTextCompare) - 1))

Hệ thống nhắn tin nội bộ trên cơ sở ghép nối môđem GSM ứng dụng SMS

End If

„Phân loại lệnh và gọi các chương trình trả lời tin nhắn tương ứng Select Case ServiceCMD

Case "CHAT"

ChatLoad „gọi cương trình xử lý Chat Case "HELP"

HelpReturn „ gọi chương trình trợ giúp

Case Else

LookupReturn „gọi chương trình dịch vụ tra cứu End Select

End Sub

Trong đoạn chương trình kể trên, nội dung của tin nhắn nhận được đã được lưu vào biến MsgContents. Mỗi dịch vụ (hay mỗi lệnh dịch vụ) đều được gán với cơ sở dữ liệu tương ứng. Tuỳ theo định nghĩa quan hệ giữa lệnh và cơ sở dữ liệu, SMSComm sẽ tìm đến bảng cơ sở dữ liệu tương ứng để lấy thông tin trả lời.

Xác định thông số dịch vụ

Việc xác định thông số được thực hiện và lưu vào biến ServID:

pos1 = InStr(1, MsgContents, " ", vbTextCompare)

pos2 = InStr(pos1 + 1, MsgContents, " ", vbTextCompare) If pos2 <> 0 Then

ServID = UCase(Mid(MsgContents, pos1 + 1, pos2 - pos1)) Else

ServID = UCase(Right(MsgContents, Len(MsgContents) - pos1)) End If

Xác định tham số dịch vụ

Việc xác định tham số dịch vụ được thực hiện thông qua việc truy vấn thông tin trả lời dịch vụ.

Trả lời dịch vụ

Việc trả lời dịch vụ được thực hiện bằng cách truy vấn cơ sở dữ liệu phù hợp với lệnh dịch vụ, lưu các thông tin truy vấn được vào biến SMSTxT và sử dụng chương trình con ReturnSMS (xem 5.5) để gửi lại thông tin yêu cầu dưới dạng SMS cho người yêu cầu thông tin.

Đoạn chương trình sau minh họa các truy vấn khác nhau tùy thuộc vào tham số và thông số của lệnh:

Select Case ServID Case "LIST"

Hệ thống nhắn tin nội bộ trên cơ sở ghép nối môđem GSM ứng dụng SMS

GoTo Line2 Case ServCMD

qlstr = "select " & IndexCol & "," & DescpCol & " from " & tab_name GoTo Line2

Case "CMD"

sqlstr = "select * from " & tab_name GoTo Line3

Case Else

If InStr(1, ServID, ":") > 0 Then GoTo Line1

ElseIf (ServID = UCase(IndexCol)) Or (InStr(1, ServID, ",", vbTextCompare) > 0) Then

GoTo Line11 Else

sqlstr = "select * from " & tab_name

sqlstr = sqlstr & " where " & IndexCol & " like '*" & ServID & "*'" GoTo Line2

End If End Select

Như vậy:

- Khi thông số của lệnh là “LIST”, hệ thống sẽ truy vấn cơ sở dữ liệu và lấy tồn các thơng tin index và description chẳng hạn toàn bộ mã hàng, tên hàng có trong cơ sở dữ liệu để gửi cho người yêu cầu.

- Khi thông số của lệnh là “CMD”, hệ thống sẽ truy vấn cơ sở dữ liệu để tìm ra tồn bộ các tham số có thể dùng với lệnh đã gửi để gửi cho người yêu cầu. - Các trường hợp khác (Case Else), chương trình sẽ tìm những thơng tin

phù hợp với tham số của lệnh đã gửi để gửi tới người yêu cầu thông tin.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống nhắn tin nội bộ dựa trên các thiết bị thông tin không dây (Trang 58 - 60)

Tải bản đầy đủ (PDF)

(84 trang)