用好已有的東西就是進步 重新認識right 函式

2021-06-09 05:57:12 字數 2320 閱讀 2737

機房收費系統進行時,遇到了組合查詢。先看一下介面:

在這裡重點說的不是三個組合條件的邏輯結構,而是針對欄位名的選擇。大家都知道我們在查詢結果集時 定義的sql 語句是這樣的:select * from tablename where fieldname  =|>|

看一下這個語句:fieldname 是從圖中欄位名中選擇的,這裡有:卡號,姓名,上機日期,上機時間,下機日期,下機時間,消費金額,餘額;而fieldvalue 從要查詢的內容中選擇。這裡存在乙個復合實際情況的對應關係:

即:當檢索的字段是:卡號,消費金額,餘額時 ,我們把它的檢索值確定為數字,上機時間和下機時間的檢索值確定為時間(hh:mm:ss),上機日期,下機日期的檢索值確定為日期(yyyy-mm-dd),剩下的姓名定位else ,這樣把字段進行乙個分類以後,便於我們對使用者各種各樣的輸入統一管理。當檢索的字段為卡號時 ,我們就要檢查一下查詢內容是不是數字,如果是則開始查詢,若不是,則提示使用者輸入數字,大大方便了我們的查詢速度。隨之就有了乙個麻煩?我在選擇這幾個欄位時,用到了select  case ,可是這裡有八個字段,難不成我要乙個乙個進行case ?像上機時間,下機時間,上機日期和下機日期這類,長得很像的詞,我可不可以把他們歸為一類,用乙個case 語句,來限定所屬型別是日期或者時間呢?

答案是可以的。這裡就用到了大家很熟悉不過的right函式。

right函式的功能是從字串右端取指定個數字元。 語法right ( string, n ) 。

看**:

select case right(combofield1.text, 2)

'對欄位輸入進行限制

case "日期"

if not isdate(txtfieldvalue1.text) then

msgbox "請輸入正確的日期格式:yyyy-mm-dd。", vbokonly + vbcritical, "輸入提示"

txtfieldvalue1.setfocus

txtfieldvalue1selstart = 0

txtfieldvalue1.sellength = len(txtfieldvalue1.text)

goto proc_exit

else

txtfieldvalue1.text = format(txtfieldvalue1, "yyyy-mm-dd")

end if

case "時間"

if not isdate(txtfieldvalue1.text) then

msgbox "請輸入正確的日期格式:hh:mm:ss。", vbokonly + vbcritical, "輸入提示"

txtfieldvalue1.setfocus

txtfieldvalue1selstart = 0

txtfieldvalue1.sellength = len(txtfieldvalue1.text)

goto proc_exit

else

txtfieldvalue1.text = format(txtfieldvalue1, "hh:mm:ss")

end if

end select

有這個函式,我們可以把屬於時間的歸為一類,屬於日期的歸為一類,原來的四個case語句,現在可以縮減到兩個,大大節省了**量,而且過程相對不那麼的冗餘了。現在我們是四個這樣的語句,如果寫出四個語句,你可能覺得還不是那麼的費勁,可是要是將來有八個,十六個呢?是不是就真的是把大量的時間用到做重複的工作上了?這不是我們追求的。

有些東西不一定非要用到多麼先進的語言,多麼高深的技術才可以看出成就,其實我們周圍有好多可以利用的資源,有的甚至都是基礎,只是我們沒有發現而已。我們還是習慣於知識就是知識,還沒有做到把知識運用到實踐中,學的新知識只是在說起來的時候知道是幹什麼的,而真正道理實踐中,想到這個知識卻費勁了。不追求有多高,一定要追求踏實。用好我們學過的就是在進步。

寫到這想起一句話,要站在巨人的肩膀上看問題,要模仿巨人的做法。記得在敲學生資訊管理系統的時候對一些結構還是有點小看法的,常常會自己問自己:為什麼要這樣寫呢?有的甚至全程都沒有用到?後來等自己開始做機房收費系統時 ,遇到了好多選擇,判斷,組合等情況,不同的是機房收費比學生資訊系統在判斷上稍微複雜點,我要是按照我最初單獨想法來,想好半天**,有時還是費力不討好,在苦思中突然想到了資訊系統中有過類似的情況,開始翻出原**,開始了模仿,真的不一樣,差距就在原來我糾結為什麼人間要這麼做,現在有點開始懵懂了。

新增已有的git專案

上文原文 首先需要從你的工作倉庫中得到乙個純倉庫,比如你的工作目錄為 kernel,你想匯出純倉庫到你的優盤裡,然後拷貝到gitserver上去。git clone bare kernel media udisk git clone git git clone git 生成bare庫 git clo...

flask更改已有的response

今天遇到個問題,需要更改返回的response,但框架已經生成了乙個response,所以需要直接更改。試著找了找解決辦法,最終解決方式如下 1 下文中payload的型別是 2 class 34 payload.set data json.dumps 5 payload.status code 2...

已有的專案檔案編譯DLL

編譯的時候,庫名稱一定要和cpp以及h頭檔名一致,方便且不容易找不到 檔案 新建 從現有 選擇c 然後選擇 的目錄 選擇dll工程 1 用def定義函式,此方法函式名稱在編譯後不會改變。library後為dll名稱,description後為描述 非必須 exports後為函式或類的名稱 將該模組定...