logo

Frequently Asked Questions Visual basic 6

Những câu hỏi thường gặp khi lập trình ngôn ngữ Visual basic 6.
Frequently Asked Questions (Faq) VB 6.0 Một File đã được Add vào trong Project nhưng sao không thấy nằm trong  Project Folder? Sau khi bạn dùng menu Command Project | Add File .. để cho một File ( Form hay  Module) vào trong Project, Project biết lấy File ấy từ đâu nhưng không tạo ra một bản  sao (copy) của File ấy trong Project Folder. Nếu bạn muốn có một copy của File ấy  trong Project Folder bạn phải dùng File | Save As .. để chứa File ấy trong một File  trùng tên hay có tên mới trong Project Folder. Nhớ là có khi bạn muốn giữ chỉ một bản của một Basic Module tại một chỗ và dùng nó  trong nhiều Project. Mỗi lần muốn dùng nó trong một Project mới bạn chỉ cần Add File  nó vào trong Project nhưng không muốn làm một bản sao của nó trong Project Folder.  Lợi điểm của cách nầy là khi cần sữa một Sub trong Basic Module bạn chỉ cần sữa  một bản thôi, chớ không cần phải vô từng Project Folder để sữa. SetUp hay Package & Deployment là gì?  SetUp là công việc gói ghém tất cả những gì cần để chạy nhu liệu áp dụng  (application software) của bạn rồi sau đó đem cài đặt lên một computer khác.   Ngày xưa trong thời Operating System DOS, để chạy một nhu liệu áp dụng ta chỉ cần  một "exe" file của nhu liệu đó và mấy cái data files. Do đó chỉ cần sao (copy) những  files ấy vào một folder trên computer khác là chạy được ngay.  Một nhu liệu VB bạn vừa viết xong thì cần nhiều thứ lỉnh kỉnh mới chạy được.  Ít nhất  nó cần những VB Components ta dùng từ Toolbox và những Library cho database  ..vv..  Hầu hết các files yểm trợ nầy cần phải được đặt vào folder C:\Windows\System của  computer kia. File "exe" của nhu liệu áp dụng, Help file và các data file khác thì có thể  được đặt vào một folder theo sự lựa chọn của user. Thí dụ như C:\MyProgram.  Ngoài ra một số các VB ActiveX components cần phải được đăng ký vào Registry của  Windows, và các tin tức về ODBC cűng cần được setup nữa.   Microsoft có cho ta nhu liệu Package & Deployment Wizard để giúp ta cho vào  (include) những files nào ta cần trước khi nó bắt đầu công việc nén (compress) các  files lại thành những "cab" files (file có extension là "cab") và sanh ra một SetUp.exe  file với một SetUp.lst file.  Ta cần chạy file SetUp.exe ở computer kia để nó làm ba  chuyện:  1. Giản (uncompress) các Cab files ra thành những file rời.  2. Copy các files ấy vào C:\Windows\System,  C:\MyProgram và những folder  nhánh của C:\MyProgram nếu cần (td: C:\MyProgra\images, C:\MyProgra\sound  ..)  3. Ðăng ký những VB ActiveX vào Registry  4. Tạo ra Data Source Name (DSN) file  cho ODBC nếu bạn đang dùng.  Bạn có thể dùng Notepad để mở SetUp.lst ra xem cho biết.  Nó chứa những dữ kiện  cần thiết cho việc setup. Khi chạy setup xong trên computer kia bạn sẽ thấy nó sanh  ra một file mới tên "st6unst.log" nằm trong cùng folder với nhu liệu áp dụng.  Sau nầy nếu bạn muốn uninstall (lấy nhu liệu ra khỏi computer) thì vô Control Panel  và click Add/Remove Programs.  Khi dialog hiện ra với Tab Install/Uninstall chọn nhu  liệu bạn muốn uninstall rồi click nút Add/Remove.  Windows sẽ dựa vào st6unst.log để  biết cần delete những files nào, ở đâu và xóa tên các VB ActiveX trong Registry  (deregister).  Thường thường các "cab" files vừa vặn cở của dĩa floppy 1.44MB. Những nhu liệu VB  nhỏ chiếm ít nhất 4 dĩa floppy.  Nếu bạn chạy setup từ CD có khi thấy các file original  hoặc không bị compress hoặc được compress vào một cab file duy nhất rất lớn thay vì  nhiều cab files cở 1.44MB.  Lưu ý vài điểm sau:  • Package & Deployment của Microsoft có khi không register ActiveX component  của các công ty khác (third party software companies) khi ta chạy setup.  Bạn  có thể thử tự register (manually) một ActiveX tên "theVBActiveX.ocx"  bằng  cách dùng Start | Run :  regsvr32 c:\Windows\System\theVBActiveX.ocx • Nếu Package & Deployment không register được các third party ActiveX như  Crystal Report, PDQComm, TrueDBGrid .vv.. thì thử dùng Wise Installation  hay InstallShield cho việc setup.  Trong khi Package & Deployment  của  Microsoft dựa vào Project file để biết bạn cần những ActiveX components nào  thì Wise Installation có thể "watch" bạn chạy thử nhu liệu áp dụng để biết bạn  cần những thứ gì? Nó bắt những Windows messages để biết việc đó, giống như  công an xét giấy những người đi vào một chỗ để biết có ai trong nhà.  Trong  trường hợp nầy có khi nó bắt gặp cả Antivirus ActiveX luôn, nên bạn nhớ delete  component đó.   • Khi InstallShield uninstall một nhu liệu nó vô ý remove tất cả các ActiveX  components mà lúc bạn register quên tuyên bố là "shared"  (được dùng chung  cho các nhu liệu khác).  Có thể các Components đó đã hiện diện và được  register từ khuya rồi.  Nhưng khi InstallShield register chúng lại không nói là  "shared" nên sau nầy lúc uninstall hậu quả tai hại vô cùng.  • Khi install một version mới của nhu liệu áp dụng của bạn hãy coi chừng  overwrite Access database file trên computer kia.  Lần đầu tiên khi bạn setup  thì đặt một database trống, nhưng sau đó khách hàng bắt đầu dùng và  cho  nhiều dữ kiện vào database rồi.  Có khi nhu liệu SetUp cho bạn option là chỉ  copy một file vào khi nó chưa hiện hữu (exist).  • Nên chạy nhu liệu áp dụng viết bằng VB6 trên WindowsNT hay Windows98  thay vì Windows95.   • Debug một nhu liệu • Debug là sữa các lỗi lầm trong code sao cho nhu liệu xử lý OK theo ý muốn  không quá chậm hay té lên, té xuống. Cách dễ nhất để loại trừ Bugs là ra siêu thị mua một lon thuốc hiệu Bagon hay  Mortein đem về xịt lên code. Nói cho cùng, debug chẳng qua là giai đoạn sau cùng của công tác thảo  chương mà thôi. Do đó, để công việc debug được nhẹ nhàng ta phải lưu ý đến  cả những giai đoạn trước đó trong chu kỳ phát triển nhu liệu. • Trước hết, giả sử ta biết rõ và chính xác mình cần phải làm gì (Requirements  Specification). Trong giai đoạn thiết kế phải đặt ngay kế hoạch sẽ thử code cách nào, khi nào  và ở đâu. Lưu ý là hể ta bỏ qua việc kiểm soát chỗ nào, nhu liệu sẽ té (crash) ở  chỗ đó. Không có gì ngao ngán bằng sở đánh thức mình nửa đêm vì nhu liệu  thiết yếu phải chạy 24 trên 24 tiếng của ta vừa mới té một cái ạch. Dĩ nhiên,  không ai dám nổi nóng với chúng ta vì họ tùy thuộc vào mình, nhưng làm việc  dưới áp lực như thế ta cần phải tránh càng nhiều càng tốt. • Có một số lề lối căn bản (basic guideline) về debug: 1. Ðặt kế hoạch Test thật chI tiết. Nghĩ đến mọi trường hợp như user không biết  cách dùng, hoặc dữ kiện bị hư (invalid) .vv.. Nếu cần thử Propotype ( mẫu) thì  nên thực hiện càng sớm càng tốt để yên tâm là sau nầy code  sẽ đạt đúng tiêu  chuẩn thiết kế. 2. Sau khi code xong lần đầu, nhớ kiểm lại bằng cách đọc từng dòng (gọi là  Desk Check). Ðừng xem Clean Compilation (compile không bị Syntax error) là  hay ho gì rồi lập tức chạy thử ngay. Tốt nhất là cắt nghĩa cho một partner hiểu  code mình viết (gọi là Walk through). Desk Check là cách chu đáo nhất để  kiểm Logic, vì nhiều khi ta không thể nào khám phá ra một lỗi trong logic bằng  cách thử bình thường. 3. Giữ cho code gọn gàng, dễ hiểu và chú thích rõ ràng. Hãy nhớ rằng trong  tương lai người bảo trì code sẽ rủa bạn nếu code bạn viết quá bí hiểm mà  không giải thích. Mỗi Variable đều cần phải được đặt tên hợp lý, cẩn thận. Ở  đầu mỗi Sub hay Function giải thích mục đích của routine, Input là gì, Output là  gì, có dùng kỹ thuật lập trình đặt biệt gì không. Bên trong Sub /Function giải  thích từng bước việc xử lý trừ khi quá hiển nhiên. Mỗi Logical Test Condition  đều phải được thử, chớ bỏ qua câu nào vì nghĩ rằng nó quá đơn giản. Ðể  breakpoint ở những chỗ ấy để kiểm value của các variables xem đó đúng như  đã định không. 4. Luôn luôn dùng Option Explicit trong mỗi Form/Module và tránh Declare  Variables bừa bãi. Giảm thiểu việc dùng Global Variables để ít bị ngạc nhiên  không biết process nào đã thay đổi value của variable bạn đang dùng. Nếu  phải làm đi làm lại một chuyện thì có lẽ bạn có thể thay thế nó bằng một  Sub/Function. Nếu hai Objects làm nhiều chuyện tương tự thì xem có thể gói  các Sub/Functions và Data Variables thành một Class không.  5. Trong mỗi Sub/Function đều nên có Error Handler để khám phá ngay bất  trắc. Chỉ nên để câu 'On Error Resume Next' sau khi đã debug xong xuôi và  biết chắc có thể bỏ qua trường hợp gặp error trong tương lai. 6. Nếu phần code bạn viết sẽ được ráp vào một phần khác thì test chỗ ráp  nhau (interface) bằng cách kiểm các Output Values của code bạn và Emulate  (giả bộ cho vào) Input Values từ phần code kia. Nếu cần làm Stress Test (cho  nhiều chuyện xãy ra xem code có chạy nhanh đủ và đúng không) thì nên thực  hiện càng sớm càng tốt. 7. Test nhu liệu trên một computer với MSWindows vừa cài đặt và không có gì  khác, ngay cả Antivirus, để khỏi phải nhức đầu vô lý khi nguyên nhân code gặp  khó khăn là vì mất Windows DLL hay bị nhu liệu Antivirus can thiệp. Và sau cùng, giữ bình tỉnh, đừng nổi nóng với chính bạn hay với ai khác. Hãy  nhớ rằng bạn là một Professional, thả lỏng (relax) và giữ đầu óc mình minh  mẩn. Nếu hoàn cảnh bi đát quá thì hãy bắt chước tôi ­ cầu nguyện xin Chúa  giúp đở. • • Các giai đoạn trong chu kỳ phát triển một nhu liệu (Development Cycle) • Ðại khái các giai đoạn chính của chu kỳ phát triển một nhu liệu là: 1. Muốn làm gì? (Requirement Specifications): Giai đoạn nầy khách hàng  bàn với software consultant để bài tỏ nguyện vọng của mình. Khách hàng chỉ  nói tổng quát, consultant phải phỏng vấn nhiều người trong sở để có một hình  ảnh đầy đủ về vấn đề. 2. Thiết kế (Design) : Từ Requirement Specifications bước qua giai đoạn Thiết  kế. Lúc nầy sẽ thấy có nhiều điểm không được nêu rõ trong Requirement  Specifications nên cần làm cho sáng tỏ (clarification). Công việc nầy do  Systems Analyst thực hiện. Nếu dự án lớn thì có Software Architect thiết kế  tổng quát trước khi chia ra các Team Leaders ( thường thường là Systems  Analysts). Trong giai đoạn nầy có khi phải làm Prototype (thử mô hình mẫu) để  biết chắc kỹ thuật mình dùng có đủ khả năng và thích hợp với nhu cầu dự án  không.  Thiết kế là giai đoạn quan trọng nhất trong chu kỳ phát triển một nhu liệu.  Chẳng những ta nghĩ cách xây dựng nhu liệu, mà còn kế hoạch chi tiết cách  thử lúc nào, ở đâu trong code. Ta phải tưởng tượng mọi cảnh huống bất thường  (unusual scenarios) nhưng có thể xãy ra để liệu cách đối phó. 3. Thảo chương (Coding hay Implementation): Ðây là giai đoạn thảo  chương và debug. Trong phần Debug thì có Unit Test (thử từng bộ phận) và  Integration Test (thử chung). Mỗi khi có sữa đổi một chút thì phải thử lại nhiều  thứ nên nếu có thể viết Test Script để tự động hóa công việc thử nầy ( gọi là  Regression Test) thì tiết kiệm rất nhiều thì giờ. Nếu nhu liệu phải phản ứng  nhanh chóng (good response) trong khi chạy Real­time thì phải thử nó trong  hoàn cảnh phải giải quyết nhiều thỉnh cầu cùng một lúc (gọi là Stress Test). 4. Chạy thử (Acceptance Test): Ở tại sở của khách hàng, Software consultant  chứng kiến các giai đoạn chạy thử để xem nhu liệu xử lý mọi chuyện đúng như  liệt kê trước đây. Các công chuyện xử lý chạy có nhanh đủ không, nhất là trong  trường hợp nhu liệu phải giải quyết rất nhiều thỉnh cầu cùng một lúc. Trong  những hoàn cảnh bất bình thường, nhu liệu có đứng vững không. Nếu dự án  lớn, trước Acceptance Test còn có thêm một giai đoạn gọi là Factory Test khi  Software Consultant đến tận công ty ta để chứng kiến ta chạy thử. 5. Cho dùng (Commissioning, Roll­Out): Khi cho dùng rồi là bắt đầu giai  đoạn Bảo đảm (Warranty) và Bảo trì (Maintenance). Bảo trì là thăm viếng lại  nhu liệu để chửa trị Bug (fixing bugs) hay sữa đổi (modification) hay làm thêm  (enhancement). Lúc bấy giờ bạn sẽ thấy giá trị của một nhu liệu được chú thích  tỉ mĩ. Thường thường nhu liệu ta bảo trì là do người khác viết hoặc do chính  mình viết từ lâu rồi, không còn nhớ nữa, nên nếu nó có documentation và được  chú thích rõ thì sẽ dễ dàng cho công việc rất nhiều. Khi lảnh một Job nhỏ, có khi ta không chú ý nhiều đến giai đoạn Requirement  Specifications. Sau nầy lúc đã viết code rồi mới khám phá ra việc mình làm  không đúng như điều khách hàng muốn thì rất phiền. Nếu Specifications đã viết  rõ ràng thì ta có thể xin thêm tiền thay đổi (variation), nhưng có khi khách hàng  vẫn trách là ta không chuyên nghiệp (professional) và có thể mình mất khách  trong tương lai. COM là gì ?  COM là viết tắt chữ Component Object Model. Component là bộ phận, còn Model  nghĩa là gì? Ngày xưa các nhu liệu WordProcessor, SpeadSheet, Database đều nằm  riêng. Ðể dùng chung với nhau ta có thể mua một nhu liệu gọi là integrated package,  nó gồm cả ba thứ vô làm một, nhưng thứ nào cűng xài tạm được chớ không xuất sắc  như từng nhu liệu riêng. MSWorks là một sản phẩm như thế. Với MSWorks ta có thể  dùng phương tiện database để vô danh sách bạn bè, kế đó dùng phương tiện  WordProcessing để viết thơ, rồi dùng phương tiện MailMerge để gởi cùng một lá thư  đến nhiều bạn hữu. Tiếp theo, Microsoft nghĩ ra cách để vô giữa một lá thư (Word document) một  Speadsheet bằng cách đặt một rỗ chứa một Speadsheet Object. Kỹ thuật nầy gọi là  Object Linking and Embedding (OLE). Làm như thế Microsoft cho user sự tiện lợi như  intergrated package mà không làm giảm khả năng của mỗi nhu liệu. Ðể có thể đặt  một Object vô một cái rỗ như nói trên đòi hỏi Microsoft phải thiết kế nó cách nào cho  tiện lợi cách dùng nó như một bộ phận tiền chế. Cách các nhu liệu chia xẻ dữ kiện và  các dịch vụ phải được phân định rõ ràng vì chúng không nhất thiết nằm trong cùng  một computer.  Lần lần Microsoft hoàn hảo kỹ thuật OLE mới đổi tên nó ra ActiveX, với ý định sẽ dùng  kỹ thuật nầy khắp nơi trên Web. Không phải chỉ có Microsoft mới sản xuất được các  bộ phận ActiveX. Thật ra Microsoft phổ biến và giúp đở các nhà sản xuất nhu liệu chế  những ActiceX theo đúng qui luật đã được thiết kế để dù ta dùng Delphi hay C++ đều  có thể làm ActiveX được. Tất cả những qui luật đó gọi chung là Component Object  Model. ActiveX được chia ra làm hai loại chính: DLL và EXE. DLL là viết tắt chữ Dynamic Link  Library. Ý nói nhu liệu áp dụng của ta sẽ dùng DLL ActiveX component như một phần  của Code mình nhờ người khác viết giùm. Code được viết ra để dùng lại nhiều lần gọi  là Library. Dynamic Link có nghĩa là khi nào cần dùng mới lấy nó từ hard disk bỏ vô  memory. DLL thì không chạy riêng như một process, nó được coi như một Sub hay  Function của nhu liệu ta viết. Do đó gọi là in­process. DLL có khi được chứa trong file  có tên với Extension là OCX. Còn EXE thì chạy trong một process riêng, như một  Server, có thể phục vụ nhiều Client processes cùng một lúc. Microsoft dùng COM trong khắp nơi của Office 2000. Mỗi nhu liệu như WinWord,  Excel chẳng qua là tổng hợp của nhiều ActiveX, và có nhiều ActiveX được dùng chung  cho nhiều nhu liệu. Khi xưa mỗi nhu liệu là một Hộp Ðen (Black Box) khiến user chỉ  biết lấy đức tin mà dùng chớ không biết có cái gì bên trong. Ngày nay, Microsoft mở ra  (expose) hết mọi ActiveX, nên cho phép ta:  1. Sừa đổi cách Microsoft xử lý một vấn đề bằng cách thay thế một Function của  Microsoft bằng một Function khác do ta viết.  2. Viết thêm những Functions mới rồi cho vào Menu bar của nhu liệu để dùng y  như chính Microsoft đã cung cấp các Function ấy. Trường hợp nầy ActiveX ta  viết để gắn vô được gọi là Add­In.  OOD là gì ?  OOD là viết tắt chữ Object Oriented Design. Ðây nói về đường hướng thão chương mới  trong 15 năm nay. Có khi người ta còn gọi là OOP ( Object Oriented Programming).  So sánh với các tiến bộ của hardware, nhu liệu có phần chậm tiến. Trong khi người ta  có thể chế một mạch điện mới bằng cách sắp xếp những bộ phận rời rạc (các miếng  IC ­ Integrated Circuits) lại với nhau thì hầu như mỗi lần bắt đầu một dự án mới các  thão chương viên lại bắt đầu từ con số không. Nếu quan sát Toolbox của Visual Basic, ta sẽ thấy nó chứa nhiều Control (còn gọi là  Object) như Label, TextBox, ListBox, CommandButton .v.v.. Ta có thể đặt các control  ấy lên một Form khi thiết kế một nhu liệu. Các Control đó cűng giống như các IC trong  mạch điện. Ngày nay khi viết VB ta có thể dùng ngay các Control mà Microsoft đã làm  sẵn. Thiết kế những Control sao cho các thão chương viên khác có thể dùng lại được thì  gọi là OOD. Nói tóm lại với OOD ta có thể thão chương dùng những Control tiền chế.  Microsoft còn gọi các Control nầy là Component. Bây giờ ta thử bàn thêm xem Object  là gì? Nếu chỉ xem Object như một miếng vách xi măng tiền chế được cần trục nhắt  lên để ráp thành một vách tường của một building thì rất là giới hạn. Object sống động  hơn một miếng xi măng vô tri, vô giác. Ta thử xem ListBox. Nó là một Object điển hình. ListBox có những đặc tính sau:  1. Properties: như Listcount ( số hàng trong ListBox), Font, BackColor, ListIndex,  List .v.v.  2. Methods: như Clear, AddItem, RemoveItem .v.v..  3. Events: như Click, Mousedown, LostFocus .v.v.. Thật ra Listbox chỉ là một ý niệm. Khi ta đặt một ListBox đầu tiên lên một Form,  by default (tự nhiên nếu không lên tiếng) VBIDE đặt tên nó là List1 (dĩ nhiên  bạn có thể đổi tên đó). List1 mới là một Object hiện hữu mà ta dùng. Từ Class  ListBox ta có thể tạo nhiều Listboxes như List1, List2, List3, MyListBox,  YourListBox .v.v.., giống như từ một khuôn bánh ta có thể làm rất nhiều cái  bánh.  Mặc dầu hai chữ Class và Object thường được dùng lẫn lộn như một thứ nhưng ở đây  ta thử phân biệt cho rõ ràng để lấy le với con cháu. Listbox là một Class, trong khi  List1 là một Object hay Instance của Class ListBox. Ta nói ListBox Class instantiate  để cho ra List1. Giai đoạn List1 lọt lòng mẹ ta gọi là instantiation. Như vậy ta đã thừa hưởng những lợi ích của OOD lâu nay khi dùng MSWindows và  thão chương VB. Mỗi Window mà ta thấy trên Desktop là một Object.  Khi thão chương ta thấy ListBox tự lo liệu việc display các hàng trong ListBox.  Khi ta  cho thêm hay lấy ra một hàng nó tự cập nhật hóa display và thay đổi giá trị (value) của  Listcount một cách tự động. Khi ai đã click lên một hàng thì ListBox nhớ hàng đó bằng  cách chứa value trong List1.ListIndex. Khi ta cho một hàng mới vào, ngay cả khi  List1.Sorted=True, ta có thể biết hàng mới cho vào nằm ở đâu trong ListBox bằng  cách xem List1.NewIndex. Ngoài ra khi ta cho List1.BackColor một màu mới, không  phải List1 chỉ ghi nhớ sự kiện ấy thôi, nó lập tức display Listbox trở lại với màu  Background mới. Các Events của ListBox cho ta những dịp để có phản ứng hợp thời  cho chúng bằng cách viết code trong các Sub Events như List1_Click,  List1_MouseDown .v.v.. Ngoài những đặc tính như Properties (những phẩm chất), Methods (những công  chuyện Object làm được) và Events (những biến cố Object sẽ báo cho ta biết khi nó  xãy ra), Nhìn từ mặt khác, một Object có những đặc tính sau:  • Encapsulation: (được gói ghém lại) Trừ khi một Property của Class được  tuyên bố xuất khẩu (ở đây chữ Class và Property có nghĩa tổng quát, chớ  không phải Class và Property của VB), không ai ở ngoài có thể đụng đến nó  được. Thí dụ muốn nói đến một variable Var1 của Form2 ta viết: Form2.Var1.  Nhưng ta chỉ có thể làm được điều nầy khi ta tuyên bố trong Form2 : Public Var1 • Inheritance: (thừa kế) Ta có thể chế một Class Con mới từ một Class Mẹ có  sẵn. Và Class mới nầy sẽ tự động mang tất cả đặc tính của Class Mẹ . Thí dụ  hầu hết các Control ta thấy trong VB ToolBox đều là Window, chúng là những  đứa con mặt műi hơi khác nhau nhưng đều thừa kế những đặc tính của Class  Window Mẹ. Chúng đều có thể display hình chữ nhật, có khung, nhận  MouseClick, Keystroke và gởi các message cho nhau. VB không phải là ngôn  ngữ thão chương cho ta làm Inheritance cách tự nhiên như C++, Java hay  Delphi. Tuy nhiên ta cűng có cách để làm được chuyện đó mặc dầu không  thanh nhả (elegant) lắm. • Polymorphism: (đa dạng) Nói cùng một câu nhưng tác dụng khác nhau tùy  hoàn cảnh. Thí dụ ta có nhiều Hình chữ nhật, Hình tròn, Hình tam giác trên  màn ảnh. Tất cả các Class Hình nầy đều là con của Class Hình Vẽ. Class Mẹ  Hình Vẽ có một Method tên là Draw (tự vẽ). Khi các Class Hình con được tạo ra  mỗi Class đều có một Method mang cùng tên Draw nhưng cái thì vẽ hình chữ  nhật, cái thì vẽ hình tròn, cái thì vẽ hình tam giác. Trong chương trình ta có thể  nói khơi khơi là bảo mọi hình tự vẽ. Lúc ấy các method Draw tuy cùng tên,  nhưng khác nhau sẽ display các hình vẽ. Ngoài đời ta có trường hợp tương tự như vậy. Khi tôi phải hủy bỏ chuyến nghỉ phép  sau khi đã dặn chỗ mọi thứ, tôi sẽ dùng cùng một câu 'Cancel Booking' nói với ba chỗ  để hồi lại Vé phi cơ, Phòng ngủ và Xe hơi mướn. Nhân viên làm việc mỗi nơi đều hiểu  ý tôi muốn Cancel Booking gì. Như thế cùng một câu 'Cancel Booking' nhưng có ba  nghĩa khác nhau tùy theo cảnh huống (context). Polymorphism liên hệ trực tiếp với Inheritance. Vì VB không phải là một ngôn ngữ thão  chương yểm trợ Inheritance cách tự nhiên, nên muốn thực hiện polymorphism bằng  VB cűng được, nhưng hơi mắc công. Thão chương theo cách Procedural là dùng chỉ một process hay task. Giống như một  người vừa ẳm em, vừa nấu cơm, vừa bửa củi, mọi chuyện do một tay mình chịu trách  nhiệm, buông bên nầy, bắt bên kia. Còn thão chương theo cách OOD thì phân công ra  cho nhiều người (Object), mỗi người khi nào làm xong một giai đoạn hay cần thiết điều  gì thì báo cáo. Trong OOD ta không ngồi đợi chuyện gì xãy ra để giải quyết, nhưng cứ làm công  chuyện bình thường, còn cái gì cần mình giải quyết nó phải phát sinh một biến cố  (Event) để lôi cuốn sự chú ý của ta và nhờ ta giải quyết. Client/ Server là gì? Client là khách hàng, Server là người phục vụ. Thường thường chữ Client / Server nói  đến trường hợp nhu liệu (Client) chạy ở nhiều computers cần lấy dữ kiện từ một  database ở một computer nào nó trong mạng. Database nầy tự nó là một nhu liệu  đang chạy trong một process riêng để phục vụ (gọi là Database Server). Khi nó nhận  được lời yêu cầu từ Client nào nó sẽ phục vụ Client ấy. Thí dụ Database Oracle chạy  trên máy WindowsNT Server. Oracle là Database Server.  Còn Access Database để trong một Disc Folder cho nhiều nhu liệu trên mạng xài  chung thì có phải là Server không? Vì Access không tự nó chạy như một process nên  được gọi là Shared File Database chớ không phải là một Server Database. Dùng Access giống như làm việc trong một sở nhỏ, mọi nhân viên tự nấu mì gói, pha  cà phê để dùng cơm trưa. Còng dùng Database Server giống như làm việc trong sở  lớn có mướn người nấu mì, pha ca phê cho nhân viên, nên không ai động đến một ấm  nước. Vậy tại sao ta phải cần đến Database Server? Sản phẩm SQL Server, Database  Server của Microsoft là database cấp bậc kỹ nghệ so với Access là database dùng  trong các ứng dụng nho nhỏ. Access có giới hạn về cở lớn và nếu 4, 5  nhu liệu dùng  database cùng một lúc ta sẽ gặp khó khăn. Ngoài ra SQL Server cho phép ta sắp đặt  cho ai được phép đọc/viết database với LogIn và Password. ODBC Driver là gì? ODBC và viết tắt chữ Open Database Connectivity, một chuẩn do Microsoft đặt ra. Vì  mỗi database đều có một ngôn ngữ thão chương khác nhau nên trong kỹ nghệ người  ta đều đồng ý dùng một ngôn ngữ database phổ thông. Ðó là Structured Query  Language (SQL). Mỗi nhà sản xuất Database đều cung cấp một ODBC Driver yểm trợ  SQL để ta dùng trong MSWindows. Một Database có ODBC Driver thì xem như mở ra (Open) cho thiên hạ móc nối  (Connect) để tiếp xúc. Ðối với thão chương viên VB, ta chỉ cần biết Database ở đầu  kia yểm trợ ODBC là đủ, không cần biết nó hiệu gì. Mai mốt có thay đổi database  cűng không ảnh hưởng nhu liệu ta đã viết bằng VB. ADO là gì ?  ADO là viết tắt chữ Active Data Objects. Ðây là một bộ các Object dùng để làm việc  với Database. Mặc dù ta có thể nói chuyện với mọi Database bằng cách dùng ODBC  Driver của nó. Nhưng ngôn ngữ SQL tương đối khó nhớ và không uyển chuyễn. Ðiển  hình là Oracle đặt ra một ngôn ngữ tên là PL­SQL (Procedure Language SQL), là tập  hợp của Modula­2 (giống Pascal) và SQL để làm việc dễ hơn trong Oracle database.  Microsoft có tham vọng muốn chế một loại ActiveX có thể đọc tất cả mọi loại  database, kể cả trường hợp database đó là một textfile. ActiveX đó được gọi là OLE  DB.  Microsoft gói các ODBC Drivers và những database driver khác vào bên trong  OLE DB. ADO là em của OLE DB, nó yểm trợ cách thão chương dễ nhớ, dễ hiểu dùng  collection để làm việc với cấu trúc và bộ phận trong database. ADO cho phép chúng ta dùng nhiều phương tiện phong phú hơn để tạo các Table hay  làm những Query bằng cách dùng hình ảnh thay vì viết SQL code. Cùng những  phương tiện nầy ta có thể dùng cho bất cứ Database nào ADO yểm trợ, ngay cả một  Database mới ra mà chính nó cűng không có phương tiện thiết kế data structure/  query bằng hình ảnh.  ADO là kỹ thuật mới nhất đã trưởng thành mà Microsoft đang dùng cho tất cả mọi nhu  liệu. Ta phải lần lượt thay thế các chỗ dùng DAO (Data Access Object) bằng ADO.  Nếu trong Code có dùng cả hai DAO và ADO, ta phải nói rõ Object kỹ thuật nào, nếu  Object có trùng tên bằng cách dùng:  Dim Myset as ADO.Recordset thay vì Dim MySet as Recordset để khỏi làm VB lầm lẫn.
DMCA.com Protection Status Copyright by webtailieu.net