6.7 客戶機(jī)程序5—交互式查詢程序
讓我們把迄今為止研究的諸多內(nèi)容整理一下,編寫(xiě)一個(gè)簡(jiǎn)單的交互式客戶機(jī)程序。它的功能包括可以進(jìn)入查詢,用通用目標(biāo)查詢處理程序process_query 執(zhí)行查詢,并用前面研究過(guò)的顯示格式process_result_set() 顯示查詢結(jié)果。
客戶機(jī)程序5在某些方面與mysql 類似,雖然在幾個(gè)特征上還是有所不同??蛻魴C(jī)程序5在輸入上有幾個(gè)約束條件:
■ 每個(gè)輸入行必須包括一個(gè)完整的查詢。
■ 查詢不會(huì)以分號(hào)或‘ \ g’為終止。
■ 不識(shí)別類似quit 的命令;而是用Control-D 結(jié)束程序。客戶機(jī)程序5的編寫(xiě)幾乎是完全微不足道的(不到1 0行的新代碼)。客戶機(jī)程序框架(client4.c)和寫(xiě)過(guò)的其他代碼幾乎提供了所需的每一件事,我們唯一要增加的是搜集輸入行并執(zhí)行它們的循環(huán)。為了建造客戶機(jī)程序5,首先把客戶機(jī)程序框架client4.c 拷貝到client5.c 中,然后把代碼增加到process _ query( )、process_result_set() 和print_dashes() 中,最后在client5.c 的main( )中尋找標(biāo)有下列字符的行:
/* do the real work here */
然后用下面的循環(huán)替換它:

編譯client5.c 產(chǎn)生client 5 . o ,將client5.c 與common.o和客戶機(jī)庫(kù)連接,生成客戶機(jī)程序5,到此就全部完成了。您就擁有了一個(gè)可執(zhí)行任意查詢并顯示結(jié)果的交互式MySQL 客戶機(jī)程序。