国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

建立MYSQL客戶機程序的一般過程

2024-07-24 12:55:42
字體:
來源:轉載
供稿:網(wǎng)友


    mysql提供用c編程語言編寫的客戶機庫,可以用它編寫訪問mysql的客戶機程序。這個庫定義了應用程序編程接口,包括下面的實用程序:
    ■ 建立和終止與服務器會話的連接管理例程。
    ■ 構造查詢的例程,將例程發(fā)送到服務器,并處理結果。
    ■ 當其他c api調(diào)用失敗時,確定錯誤準確原因的狀態(tài)和錯誤報告函數(shù)。
    本章介紹如何用客戶機庫編寫自己的程序。我們要記住的一些要點是,自己的程序與mysql分發(fā)包中已有的客戶機程序的一致性,代碼的模塊性和可重用性。本章假設您知道用c編程的一些知識,但并不一定是專家。本章從簡單到復雜粗略地開發(fā)了一系列的客戶機程序。這個過程是第一部分開發(fā)了一個程序框架,該框架除了與服務器連接和斷開以外不能作任何事情。這樣做的原因是,盡管mysql客戶機程序是為不同的目的而編寫的,但它們都有一個共同點:即創(chuàng)建與服務器的連接。
    我們將用以下步驟來建立這個程序框架:
    1. 編寫一些連接和斷開的簡要代碼(客戶機程序1)。
    2. 增加一些錯誤檢查(客戶機程序2)。
    3. 使連接代碼模塊化和可重用化(客戶機程序3)。
    4. 增加獲取運行時連接參數(shù)的能力(主機,用戶,口令)(客戶機程序4)。
    這個框架一般是合理的,可以使用它作為編寫任意數(shù)量的客戶機程序的基礎。開發(fā)它以后,我們將暫不考慮如何處理各種問題。首先,我們將討論如何處理特定的硬編碼的sql語句,然后再開發(fā)用于處理任意語句的代碼。在這之后,將查詢處理的代碼增加到客戶機程序框架中,開發(fā)另一個程序(客戶機程序5),它類似于mysql客戶機程序。我們也將考慮(并解決)一些通用的問題,如“如何獲取有關表的結構信息?”和“如何在數(shù)據(jù)庫中插入圖像?”只有在需要時,本章才討論客戶機庫的函數(shù)和數(shù)據(jù)類型。要想了解所有函數(shù)和類型的列表,請參閱附錄f“c api 參考”。可以用這個附錄作為使用客戶機庫任何部分的進一步的背景信息的參考。
    樣例程序可以由聯(lián)機下載得到,可以直接使用,而不必再鍵入它們。有關的指導,請參閱附錄a“獲得和安裝軟件”。
    在哪里尋找樣例
    mysql郵件清單的一個共同問題就是“我在哪里可以找到一些用c 寫的客戶機樣例?”。當然,這個答案是“就在本書里!”。但是,許多人好像并沒有考慮的是mysql分發(fā)包中包括了若干客戶機程序(例如mysql、mysqladmin 和mysqldump),這些大部分都是用c編寫的。因為這個分發(fā)包可以很容易地以源程序形式使用,所以mysql提供非常少的樣例客戶機代碼。因此,如果您還沒有這樣做,找個時間找到源程序分發(fā)包,在客戶機目錄中查看這些程序。mysql客戶機程序為共享軟件,從那里可以為自己的程序自由地借用代碼。
    在本章提供的樣例和mysql分發(fā)包中包括的客戶機程序之間,可以找到與自己編寫程序時想做的事情相類似的代碼。如果是這樣,可以通過拷貝和修改已有的程序來重新使用代碼。應該閱讀本章,了解客戶機庫是如何工作的。然而,請記住,并不總是需要自己編寫瑣碎的每件事情(您將注意到,在本章編寫程序的討論中,代碼的可重用性是目的之一)。通過使用其他人編好的程序,可以避免許多工作,那是最好的。
    6.1建立客戶機程序的一般過程
    本節(jié)介紹使用mysql客戶機庫編譯和連接程序所包括的步驟。不同的系統(tǒng)建立客戶機程序的命令也有所不同,可能需要稍微修改一下這里介紹的命令。然而,這里的說明是通用的,應該能夠?qū)⑺糜趲缀跄帉懙娜魏慰蛻魴C程序中。
    6.1.1基本的系統(tǒng)需求
    當您用c 編寫mysql客戶程序時,顯然將需要一個c 編譯程序。這里說明的樣例使用gcc。除了自己的源文件以外,還將需要下列程序:
    ■ mysql頭文件。
    ■ mysql客戶機庫。
    mysql頭文件和客戶機庫組成客戶機編程的支持程序。它們可能已經(jīng)安裝到您的系統(tǒng)上。如果沒有,應獲取它們。如果mysql從源程序分發(fā)包或二進制分發(fā)包中安裝,則客戶機可編程的支持程序應該已經(jīng)作為該處理的一部分安裝了。如果mysql是從rpm 文件中安裝的,
則除非安裝了開發(fā)程序r p m,否則就沒有這種支持。如果需要安裝mysql頭文件和庫,請參閱附錄a。
    6.1.2 編譯和連接客戶機程序
    要想編譯和連接客戶機程序,就必須指定mysql頭文件和客戶機庫的位置,因為它們通常不安裝在編譯程序和連接程序缺省搜索的位置。對于下面的樣例,假定頭文件和客戶機庫的位置為/usr/local/include/mysql和/ usr / local / lib / mysql。要想告知編譯程序如何尋找mysql頭文件,則當將源文件編譯為目標文件時,傳送給它一個-i/usr/local/include/mysql參數(shù)。例如,可以使用這樣的命令:

    要想告知連接程序在哪,可以找到客戶機庫和它的名稱,當連接目標文件產(chǎn)生一個可執(zhí)行的二進制文件時,傳送-l/usr/local/lib/mysql和-lmysqlclient 參數(shù),如下所示:

    如果客戶機程序包括多個文件,則所有目標文件的名稱都要列在連接命令上。如果連接步驟導致不能找到必需的floor() 函數(shù)的錯誤,則通過在命令行的后面增加- l m,連接到數(shù)學庫:

    可能還需要增加其他的庫。例如,在solaris 上可能需要-lsocket -lnsl。
    如果沒有使用make 建立程序,則建議您了解一下如何進行,以便不必手工地鍵入許多建立程序的命令。假設有一個客戶機程序myclient,包括兩個源文件main.c 和aux.c,及一個頭文件myclient.h。一個簡單的makefile 建立這個程序的代碼,如下所示:

    如果是一個需要連接到數(shù)學庫的系統(tǒng),則更改libs 的值,并將-lm 加到最后:libs = -l/usr/local/lib/mysql-lmysqlclient -lm
如果需要其他的庫,如-lsocket 和- l n s l,則也要將這些庫加到libs 中。使用m a k e f i l e,無論何時修改何源文件,只簡單地鍵入“ m a k e”就可以重新建立程序代碼。那比鍵入一句長的gcc 命令更容易,發(fā)生錯誤更少。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大邑县| 宣恩县| 扶绥县| 渝北区| 商南县| 宝清县| 二连浩特市| 乌审旗| 平江县| 纳雍县| 嘉鱼县| 宁阳县| 静宁县| 安吉县| 甘德县| 垫江县| 无极县| 城步| 漳平市| 芜湖县| 庐江县| 肇源县| 监利县| 繁峙县| 襄汾县| 甘南县| 米泉市| 县级市| 娄底市| 呼图壁县| 仪陇县| 夹江县| 乾安县| 兴宁市| 子长县| 安阳市| 突泉县| 江门市| 富锦市| 新巴尔虎右旗| 安陆市|