孫樹紅 劉路鋼
(中國聯合通信網絡有限公司哈爾濱市分公司產品支撐中心 黑龍江 哈爾濱 150090)
全信息報到步驟和程序為:賽鴿歸巢后首先刮開覆蓋在密碼上的灰墨及其明碼即顯現密碼,然后撥打專用信息臺信鴿報到熱線,依照提示語音逐項輸入三項數碼,即依次輸入密碼、棚號、年號和足環號即可,系統將自動記錄下鴿友所播打的時間和輸入的數據,并及時提交到黑龍江聲迅信息港網頁上,即信鴿報到成功。
本程序主要用到了frame 控件,checkbox 控件,commandbox 控件,label 控件,StatusBar 控件、 采用ADO 操作數據庫和應用API 函數完成全信息報到數據的下載和上傳。
本系統采用ACCESS 數據庫,數據庫名為XXH.MDB,該數據庫共包含兩個數據表,”信箱號”表,”temp”表,其中“信箱號”表是用來存儲信箱號的,可以添加信箱號或刪除信箱號。 “TEMP”表主要是用來存儲數據的,在本程序中起到了主要的作用。
本系統對數據庫的操作全部采用了ADO,具體用到的對象如下:
Connection 對象、Command 對象、Recordset 對象
1) 采用windows API 函數讀INI 文件
在本系統中, 各臺服務器的設置采用了windows API 函數讀INI 文件,INI 文件中分若干個段(Section),每個段中有若干個鍵(Key) 值(Value) 對。 一個鍵值對保存一個信息;段則將屬性類似的一些鍵值對組織在一起。 同一個段中不能出現兩次以上同樣的鍵,但不同的段中可以出現相同的鍵。
2)采用windows API 函數實現數據下載和上傳
在實現下載的過程中, 也用到了windows API 函數,主要用到了如下函數:
InternetOpen 函數,InternetConnect 函數,FtpGetFile 函數,FtpFindFirstFile 函數,InternetCloseHandle 函數。
具體實現方法如下:(以上所有的聲明就存儲在WININET.Bas 文件中)
(1)用一個InternetOpen 調用設置環境。
(2)調用InternetConnect 函數與主機連接。
(3)調用FtpFindFirstFile 函數判斷下載的文件是否存在。
(4)調用FtpGetFile 下載文件。
(5)調用FtpputFile 上傳文件。
(6)關閉第1、2 步創建的句柄,用InternetCloseHandle 函數。
3)程序的實現過程
當啟動程序時,在通用事件設置了一些全局變量(內容見程序源代碼),同時在form onload 事件中,做了一些對程序的初始化設置,設置如下:
A、由于本程序是24 小時不停運行的程序,所以每運行完數據上傳后,就應該刪除該程序下的數據,以便在次下載新的數據。 所以程序中加入對文件及文件夾存在的判斷。 加入方法是: 工程——引用——microsoft scripting runtime 即可。 判斷配置文件config.ini 文件是否存在。 如果不存在則程序提示后退出系統。
B、從配置文件config.ini 文件中讀出各臺服務器的配置參數,采用循環的方式動態的讀出各個參數,用到的函數是Get-PrivateProfileString。
C、 本程序的最大優點是可以動態的添加服務器和信箱號。由于各個方面的限制,現在只能加到14 臺。 本程序預留出了一些內容,以便動態的改便,所以當服務器和信箱號少于本程序的最大處理能力時,預留的控件應該以不可見。
D、接下來,從數據庫中讀取“信箱號”,來顯示到主界面上。
E、在主界面的狀態欄中顯示當前狀態。
StatusBar1.SimpleText = “準備就緒”
到此程序的啟動結束,等待用戶操作。
4)程序的操作
A、服務器的選擇
在主界面上動態的列出了所有的服務器以供用戶選擇,用戶可以單擊某一個服務器選擇,也可以單擊下面的“全選”按鈕,全部選擇。 同時如果用戶要取消所做的選擇,則可以在單擊對服務器即可,也可以單擊下面的“取消”按鈕全部取消。
B、信箱號的選擇
在主界面上動態的列出了所有的信箱號,以供用戶選擇,用戶可以單擊某一個信箱號選擇,也可以單擊下面的“全選”按鈕,全部選擇。 同時如果用戶要取消所做的選擇,則可以在單擊對信箱號即可,也可以單擊下面的“取消”按鈕全部取消。
C、信箱號的添加與刪除
在程序的主界面菜單中有一個“修改信箱號”菜單,當單擊該菜單時,出現“添加信箱號”和“修改信箱號”兩個下拉菜單,如單擊其中添加信息號菜單后,主窗體關閉,添加窗體載入;
實現方式為利用ADO 打開數據庫,從中讀出“信箱表”中的數據,然后把它加入下“Combo 控件”中,來實現下拉菜單的效果。
在這個頁中主要實現信箱號的添加,刪除。
首先,介紹一下“添加”功能,當用戶輸入數據時,首先要判斷,用戶輸入的是不是數字,在判斷一下數據的長度是不是大于5, 還要判斷數據庫中是不是已經存在, 如果數據存在,則提示“用戶數據已經存在,請選擇其它”。 所有條件都滿足了,允許向數據庫中添加數據。 添加到數據庫中后還要更新“刪除”下拉菜單下的內容,把剛才添加的內容加入到下拉菜單中。
接下來是信箱號的刪除功能, 同樣利用ADO 控件打開數據庫,判斷數據庫中有否有數據,如果沒有則提示“數據庫無數據,請添加! ”,否則就把所選擇的信箱號刪除。
D、主程序的運行
在主窗口中有一運行按鈕,當所有的初始條件都設置好以后,就可以運行該程序了。 為了保證程序運行時不被修改所有應該將所有的按鈕(除了停止按鈕以外)設置為不可用。為了保證至少一臺服務器和至少一個信箱號被選擇,用代碼來控制實現了該功能。 如果它們中有一個都沒有選擇的話,給出提示后,就跳出程序等侍用戶選擇。 為了保證程序運行時不被修改所有應該將所有的按鈕 (除了停止按鈕以外)設置為不可用。
E、關閉按鈕
這段按鈕主要是停止程序的運行,使程序回到初便的狀態。
信鴿熱線管理系統系統運行的高效、安全、穩定,受到了用戶和各個信鴿協會的肯定,同時產生了很大的社會效益和經濟效益,現已廣泛應用到全省各地。S
[1]劉新民.Visual Basic 6.0 程序設計[M].清華大學出版社,2004.
[2]管麗娜,白海波.實用Visual Basic6 教程[M].清華大學出社,2001.
[3]段興.Visual Basic 數據庫實用程序設計100 例[M].人民郵電出版社.