Ngôn ngữ kịch bản VBScript

Một phần của tài liệu Quản lý cơ sở dữ liệu trên mạng Internet bằng mô hình cơ sở dữ liệu phân tán (Trang 67)

a. Viết kịch bản trong trang HTML

Để viết mã script trong tài liệu HTML, ta phải dùng cặp thẻ script. Bạn nên sử dụng cặp thẻ script cùng với cặp thẻ chú thích. Cặp thẻ chú thích sẽ rất quan trọng trong trường hợp bộ duyệt của bạn không hỗ trợ Vbscript. Mã script có thể được viết tại bất cứ vị trí nào trong khung tài liệu HTML.

<Script> Mã lệnh script </Script>

Chú ý rằng thẻ chú thích phải được viết ngay sau thẻ script. Nếu bộ duyệt không hỗ trợ script mà có cặp thẻ chú thích cùng với thẻ script thì nó sẽ bỏ qua thẻ script này và ngăn cản không cho bộ duyệt hiển thị các mã lệnh script. Trong trường hợp bộ duyệt không hỗ trợ script và không có cặp thẻ chú thích thì các mã lệnh script sẽ được bộ duyệt hiển thị nguyên bản lên màn hình. Các dòng chú thích cần đặt sau dấu nháy đơn

b. Các kiểu dữ liệu chuẩn Kiểu Logic Boolean

Kiểu Boolean chỉ có hai giá trị TRUE hoặc FALSE. True tương đương với -1, False tương đương với 0.

Kiểu Byte: Kiểu byte bao gồm các giá trị nguyên từ 0 đến 255.

Kiểu Integer : Kiểu Integer lưu trữ các số nguyên không có dấu phẩy thập phân có giá trị từ -32768 đến +32767

Kiểu Long : Kiểu Long là kiểu số nguyên dài. Phạm vi giá trị là các số từ -231

đến +231

Kiểu Single: Kiểu single là kiểu số thập phân với dấu phẩy động. Các giá trị

trong phạm vi từ - 1.4e-45 đến -3.4e+38 với các số âm, từ 1.4e-45 đến 3.4e+38 với

các số dương.

Kiểu Double: Kiểu double cũng là một kiểu số thập phân với dấu phẩy động với phạm vi lớn hơn kiểu single. Các giá trị trong phạm vi từ -4.9e-324 đến - 1.8e+308 với các số âm, từ 4.9e-324 đến 1.8e+308 với các số dương.

Kiểu Date(Time): Kiểu date lưu trữ các dữ liệu dạng ngày tháng với định dạng mm/dd/yy.

Kiểu String: Kiểu tring lưu trữ các xâu văn bản, bao gồm các chữ số, các ký tự và các ký hiệu khác.

Kiểu Object: Kiểu object lưu trữ các đối tượng như các điều khiển, các đối tượng của bộ duyệt.

Kiểu Error: Kiểu enor lưu trữ các lỗi.

Kiểu Empty: Kiểu empty được dùng cho các biến được tạo ra nhưng chưa được gán giá trị.

Kiểu Null: Kiểu null dùng để tham chiếu đến các biến chưa có dữ liệu Vbscript có thể chuyển đổi giữa một số kiểu dữ liệu trong một số trường hợp.

c. Các khai báo biến, hằng, mảng

 Khai báo biến

Có 2 cách khai báo biến:

+ Khai báo tường minh (dùng từ khoá Dim)

Khai báo không tường minh (bằng cách gán cho biến một giá trị) - Cách 1 :

Sử dụng câu lệnh Explicit và từ khoá Dim. Cú pháp như sau:

Dim Tên_biến

Ví dụ: Dim i

Bạn có thể tạo một danh sách các biến bằng cách phân cách các biến bằng dấu phẩy (,). Ví dụ:

Với cách tạo biến này, khi dùng biến nhất thiết bạn phải khai báo biến trước bằng từ khoá Dim

Cách 2:

Sử dụng câu lệnh implicit. Khi đó ban không cần từ khoá Dim. Cú pháp như sau:

Tên_biến = giá trị

Ví dụ: I = 10

Với cách tạo biến này khi sử dụng biến bạn không phải khai báo trước. Tuy nhiên ta nên sử dụng cách 1 bởi vì trong nhiều trường hợp nếu đánh sai tên biến do lỗi chính tả Vbscript sẽ cảnh báo nên phải khai báo biến trước.

Ví dụ:

<Script language = Vbscript> On explicit

Dim x x = 10 x = x + 1 </script >

Khi chạy chương trình sẽ có giá trị bằng 11 Ví dụ: <Script language=‟Vbscript‟> On explicit X = 10 X = x + 1 </script >

Khi chạy chương trình Vbscript sẽ báo lỗi yêu cầu phải khai báo x trước lệnh x=10 Ví dụ

<Script language = „Vbscript‟> <!--

temp=10

temp = tmp + 10 </Script >

Khi chạy chương trình temp sẽ có giá trị bằng =10, ta viết nhầm temp trong vế phải của lệnh gán nhưng Vbscript sẽ không báo lỗi vì temp sẽ được hiểu là một biến mới và nhận giá trị bằng 0 lúc khởi tạo (trong lệnh gán).

Hằng là các đại lượng có giá trị không đổi. Hằng được khai báo theo mẫu:

Const Tên_hằng = giá trị

Ví dụ:

Const Mystring = “This is my tring" „Hằng chuỗi

Const Myage = 49 „Hằng nguyên

Const Cutoffdate = #6-1-97# „Hằng date

Khai báo mảng

Mảng là tập hợp các phần tử có cùng kiểu dữ liệu. Có hai loại mảng là mảng tĩnh và mảng động. Mảng tĩnh được cố định số các phần tử trong mảng khi ta khai báo. Mảng động có thể thay đổi số lượng các phần tử của mảng trong chương trình.

Mảng được khai báo theo mẫu:

Dim a(10), b(20,30)

Khi đó:

a là mảng một chiều có 11 phần tử: a(0), a(1), a(2), …,a(10) b là mảng2 chiều gồm 21 hàng, 31 cột; 21 *31 phần tử: b(i,j) với i= đến 20, j=0 đến 30

* Mảng động được khai báo theo mẫu:

Dim a()

Sau này để sử dụng mảng a cần khai báo lại để định rõ số chiều và kích thước mỗi chiều như sau:

Redim a(10,20)

Mảng động thường được sử dụng để khai báo đối (là mảng) của hàm và thủ tục.

c. Các phép toán

Các phép toán số học

Phép cộng (+): Các toán hạng thuộc kiểu số: a + b

Phép trừ (-) : Các toán hạng thuộc kiểu số: a - b

Phép nhân ( *) : Các toán hạng thuộc kiểu số: a * b

Phép chia (/ \ ) : Các toán hạng thuộc kiểu số: a / b; a \ b

a /b : phép chia lấy kết quả có phần thập phân

a \ b : phép chia lấy kết quả phần nguyên.

Phép lấy dư (mod): Áp dụng đối với các toán hạng kiểu số, a mod b = phần dư của phép chia a cho b .

. Các phép toán so sánh

Các phép toán so sánh bao giờ cũng trả về giá trị thuộc kiểu Boolean.

So sánh bằng (-) : a = b

So sánh khác (<>): a <> b

So sánh lớn hơn, lớn hơn hoặc bằng (>, >=): a > b; a >=b So sánh nhỏ hơn, nhỏ hơn hoặc bằng (<, <=) : a < b; a <=b So sánh bằng với các đối tượng (is): a is b

Các phép toán logic

Các phép toán logic dùng với các toán hạng thuộc kiểu Boolean: not, and, or.

Các phép toán đối với kiểu xâu (string) Phép nối xâu (&): str 1 & str2 &… & strn

Phép cộng xâu (+): Strl + Str2 +… + Strn

Nếu mọi Stri đều là xâu thì tương tự phép nối xâu nhưng nếu tồn tại Str nào đó, không là xâu thì sẽ mắc lỗi.

Một số hàm thao tác với các kiểu dữ liệu

Isdate

Cú pháp isdate(d)

Hàm isdate(d) sẽ trả lại giá trị true nếu tham số d thuộc kiểu ngày tháng, trong trường hợp ngược lại trả về giá trị false.

Ví dụ:

Isdate(#04/01/96") = True lsdate("30/02/98") = False

Isnumeric

Cú pháp isnumeric(n)

Hàm isnumeric(n) yêu cầu sẽ trả về giá trị True nếu n là một số, trong trường hợp ngược lại trả về False

Isempty

Cú pháp: Isempty(v)

Hàm isempty(v) sẽ trả về giá tri True nếu biến v chưa bao giờ được gán giá trị, hay nói cách khác là chưa bao giờ được sử dụng trong chương trình.

Isnull

Cú pháp: Isnull(v)

Hàm isnull(v) sẽ trả về giá trị True nếu v được thiết lập giá tri Null và sẽ trả về giá trị False trong các trường hợp còn lại.

Isobject

Cú pháp: Isobject(o)

Hàm Isobject(o) sẽ trả lại giá trị True nếu o là một đối tượng, và sẽ nhập giá trị False trong các trường hợp còn lại.

Cbool

Cú pháp: Cbool(b)

Hàm Cbool(b) sẽ trả tề gia trị tương ứng của b thuộc kiểu Boolean. Biến b phải là một số. Nếu b = 0 thì trả về False, trong các trường hợp còn lại hàm trả về giá trị True. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

Cbyte

Cú pháp: Cbyte(b)

Hàm Cbyte(b) sẽ trả về giá trị tương ứng của b thuộc kiểu byte. Biến phải là một số trong phạm vi từ 0…255. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

Cdate

Cú pháp: Cdate(s)

Hàm Cdate(s) sẽ trả về giá trị tương ứng của xâu s thuộc kiểu Date. Biến s phải là một xâu có định dạng ngày tháng. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

Cint

Cú pháp: Cint(n)

Hàm Cint(n) sẽ trả về giá trị tương ứng của n thuộc kiểu Integer. Biến phải là một số trong phạm vi của kiểu Integer. Khi chuyển đổi hàm sẽ thực hiện làm tròn. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

CLng

Hàm CLng(n) sẽ trả về giá trị tương ứng của n thuộc kiểu Long. Biến phải là một số trong phạm vi kiểu Long. Khi chuyển đổi hàm sẽ thực hiện làm tròn. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

CSng

Cú pháp: Csng(n)

Hàm Csng(n) sẽ trả về giá trị tương ứng của n thuộc kiểu single. Biến n phải là một số trong phạm vi kiểu single. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

Cdbl

Cú pháp: Cdbl(n)

Hàm Cdbl(n) sẽ trả về giá trị tương ứng của n thuộc kiểu Dollble. Biến n phải là một số trong phạm vi kiểu Double. Trong các trường hợp không chuyển đổi được một lỗi sẽ được trả về.

Cstr

Cú pháp: Cstr(n)

Hàm Cstr(n) sẽ trả về giá trị tương ứng của n thuộc kiểu tring. Biến n phải là một số hoặc có thể là một xâu.

d. Các toán tử điều khiển trong VBScript

Toán tử rẽ rẽ nhánh If.. then [else …].. End if

Cú pháp 1 : If BTĐK Then Các lệnh khi BTĐK đúng End if Cú pháp 2: If BTĐK Then Các lệnh khi BTĐK đúng Else Các lệnh khi BTĐK sai End if

Toán tử rẽ nhánh Select case

Cú pháp:

Select case BT Case gt1

Các lệnh khi BT = gt1 Case gt2

Các lệnh khi BT = gt2 Case else

Các lệnh khi BT - gt n+l End select

BT là biểu thức kiểu đếm được  Toán tử lặp For... next

Cú pháp 1:

For bd = gt1 to gt2 Các lệnh Next

Cú pháp 2:

For bd = gt1 to gt2 step <đơn vị tăng> Các lệnh

Next

Toán tử lặp Do While... Loop

Cú pháp :

Do while BTĐK

Các lệnh

Loop

Toán tử lặp Do Loop … While

Cú pháp: Do Các lệnh Loop while BTĐK e. Các hàm và thủ tục trong Vbscript Thủ tục

Thủ tục là đoạn chương trình thực hiện một nhiệm vụ nào đó.

Cú pháp khai báo: Sub Tên_thủ_tục (danh sách các tham số)

Mã lệnh trong thân thủ tục

End Sub

Tên_thủ_tục được đặt theo quy tắc đặt tên

Danh sách các tham số được phân cách nhau bởi dấu phẩy Ví dụ:

Sub Showmessage(currentmessage)

Msgbox Currentmessage, vbokonly, “Important Message” End Sub

*Gọi thủ tục

Có 2 cách gọi thủ tục: Cách 1 :

Tên_thủ_tục (danh sách tham số tương ứng trong thủ tục)

Hoặc: Tên_thủ_tục Danh sách tham số

Cách 2 :

Call là từ khóa  Hàm

Hàm là một đoạn chương trình thực hiện một nhiệm vụ nào đó nhưng khác với thủ tục, hàm bao giờ cũng trả về một giá trị thông qua tên hàm.

 Khai báo sử dụng:

Function Tên_hàm (danh sách các tham số)

Mã lệnh trong thân hàm

End Function

Function : Là từ khóa

Trong đoạn mã lệnh của thân hàm phải có lệnh Tên hàm = Giá trị

 Thoát khỏi hàm

Cú pháp: Exit Function

Tham biến và tham trị trong thủ tục và hàm

Có hai cách truyền tham số cho thủ tục và hàm là truyền theo tham biến và truyền theo tham trị.

 Tham trị: Trong các ví dụ trên cách truyền tham số cho thủ tục, hàm là truyền theo kiểu tham trị. Với cách truyền này sau khi kết thúc thủ tục hàm giá trị của các biến đưa vào không được thay đổi giá trị cho dù bạn có thay đồi giá trị của nó trong thân thủ tục hàm. Tuy nhiên, bạn có thể truyền tham trị theo cách sau:

Sub Tên_thủ_tục (ByVal Tên_biến 1, ByVal Tên_biến2,…) End sub

Khi đó Tên_biến1, Tên_biến2 là các tham trị. ByVal là từ khóa

Mặc định nếu bạn không để Byval hay Byref trước tên biến thì Vbscript hiểu là Byval.

 Tham biến:

Truyền tham số cho thủ tục, hàm theo kiểu tham biến thì ngược lại với cách truyền kiểu tham trị Sau khi kết thúc thủ tục, hàm giá trị của biến được giữ nguyên như nó đã có trong thân thủ tục, hàm.

Cú pháp khai báo:

End Sub

Khi đó tên_biến1, tên_biến2 là các tham biến. Byref là từ khóa

f. Các ô điều khiển trong form HTML

Các điều khiển cơ bản trong Form gồm các loại: Textbox, textaraea, button. Khi các điều khiển này đặt trong form bạn không thể truy xuất trực tiếp đến chúng thông qua tên trong script. Để truy xuất đến các đối tượng của Forn trong script bạn phải truy xuất thông qua cú pháp sau:

Document.form_name.control_name.property Document là từ khóa chỉ toàn bộ tài liệu HTML

Form_name là tên form do bạn đặt thông qua thuộc tính name của thẻ form

Control_name là tên điều khiển trong form mà bạn muốn truy xuất đến

property là thuộc tính của điều khiển

Bạn có thể thiết lập tên form vào một biến bằng cách sử dụng cú pháp sau:

set form_var=document.form_name

form_var là lên biến form

Khi đó bạn sẽ truy xuất đến các điều khiển trong form theo cú pháp:

form_var.control_name.property

Ví dụ: <HTML>

<head> <title> TEST VB </title></head> <body>

<Form name = „frm Test‟ method =‟post‟ action =‟form.htm‟> Ban hay nhap ten: <br>

<Input type =‟text‟ name =‟txtname‟ value=‟‟<br><br>

<Input type=‟button‟ name=‟cmdname‟ value=‟Ten vua nhap?‟><br><br> <Input type =‟text‟ name =‟txtname‟ value=‟‟<br><br>

</form>

<Script language =‟Vbscript‟> sub cmdname_onclick()

dim form dim name

set form = document.frmTest name = form.txtname.value form.txtname.value=name end sub

</script> </body> <HTML>

Một phần của tài liệu Quản lý cơ sở dữ liệu trên mạng Internet bằng mô hình cơ sở dữ liệu phân tán (Trang 67)