mysql 嵌入式c 嵌入式MYSQL伺服器實現

2021-10-18 10:14:28 字數 4238 閱讀 2983

嵌入式mysql伺服器實現// embeddedmysql.h: inte***ce for the cembeddedmysql class.#if !defined(afx_embeddedmysql_h__516724e2_889c_4899_9dae_330cd4c5954f__included_)#defi

嵌入式mysql伺服器實現

// embeddedmysql.h: inte***ce for the cembeddedmysql class.

#if !defined(afx_embeddedmysql_h__516724e2_889c_4899_9dae_330cd4c5954f__included_)

#define afx_embeddedmysql_h__516724e2_889c_4899_9dae_330cd4c5954f__included_

www.2cto.com

#if _msc_ver > 1000

#pragma once

#endif // _msc_ver > 1000

#include <.h>

#include

#include "stdstring.h"

using namespace std;

//嵌入式mysql伺服器

class cembeddedmysql

public:

cembeddedmysql();

virtual ~cembeddedmysql();

static bool startupembeddedserver();

static void shutdownembeddedserver();

bool open( const string &svr, const string &usr, const string &pwd, const string &db);

void close();

www.2cto.com

bool resetdb();

void set( const string &sfield, const string &svalue );

void set( const string &sfield, double dvalue );

void set( const string &sfield, long nvalue );

void set( const string &sfield, int nvalue );

void set( const string &sfield, byte *pbuf, int nlen );

void setnull( const string &sfield );

void registeroutparameter( const string &sfield, char ctype );

//    void setrecord( const string &sfield, const string &stablename, const string &stypename, cstdrecord &record );

void cmd(const char *cmd,...);

bool more();

long exec();

//    bool selectinto(cstdrecord *precord,bool bcreatehead=true);

double getdouble(int id);

double getdouble(const string &name);

long getlong(int id);

long getlong(const string &name);

string get(int id);

string get(const string &name);

string getlasterrmsg();

char* getsql();

bool moreforupdate();

bool setbuffer( int nfieldindex, byte *pbuf, long nsize );

bool setbuffer( const string &sfield, byte *pbuf, long nsize );

bool getbuffer( const string &sfield, byte *pbuf, long &nsize );

bool getbuffer( int nfieldindex, byte *pbuf, long &nsize );

long getdatasize( const string &sfield );

long getdatasize( int nfieldindex );

long getactualsize( const string &sfield );

long getactualsize( int nfieldindex );

www.2cto.com

void clearsql();

long getcolindex( const string &sfield );

string getcolname( int nfiledindex );

string getcoltype( int index );

int getnumcols();

string getheadscript();

int  row_getsize();

bool row_gethead( string &shead );

bool row_more( char *pdata, int &nsize );

void setautocommit( bool autocommit );

void rollback();

void commit();

bool isdead();

bool setparam( int ntype, const string &sval );

protected:

void writesqlerrlog();

// 獲取過程返回值

string getstorageproreturnvalue(const string &name);

void copyrowdata(char * pdata,mysql_row row); // added by cailei

cstdstring getcurtime(time_t ntime=0);

long getcurdate(time_t ntime=0);

www.2cto.com

mysql *m_hmysql;

mysql_res *m_pres;

mysql_row m_row;

mysql_field *m_pfields;

long m_nrowsize;

bool m_bregparam;                  // 是否註冊了過程返回變數

protected:

string m_ssvr;

string m_suser;

string m_spwd;

string m_sdb;

string m_susermode;

bool   m_breopen; //是系統重新開啟連線

int     m_nstatus; // 0 :sql 空閒狀態 1 :有sql語句等待執行 2:有結果資料待取出

int     m_ncount; //結果集記錄數量

int     m_ncode; //執行返回碼

int     m_nsqlsize; //預設是16k

string  m_serr; //錯誤訊息

char    *m_psql; //sql語句

string  m_ssrc; //呼叫源

bool    m_berror; //語句執行是否出錯

int     m_ndbtype;  //驅動型別

void    *m_punidbrecv; //保留

bool    m_btran; //事務標誌

void    *m_preq;  www.2cto.com

byte    *m_preqbuf;

int     m_nreqsize;

bool    m_bdebug;

#endif // !defined(afx_embeddedmysql_h__516724e2_889c_4899_9dae_330cd4c5954f__included_)

作者 蔡磊

初識嵌入式 嵌入式開發概述

1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...

嵌入式學習(二) 嵌入式系統C 語言

1 從 cpu 復位時的指定位址開始執行 2 跳轉至彙編 startup 處執行 3 跳轉至使用者主程式 main 執行,在 main 中完成 a.初試化各硬體裝置 b.初始化各軟體模組 c.進入死迴圈 無限迴圈 d呼叫各模組的處理函式 下面是幾個 著名 的死迴圈 1 作業系統是死迴圈 2 win3...

嵌入式mysql資料

關於嵌入式mysql開發資料很少,有幾篇帖子只說自己編譯通過了,卻不說說關鍵的步驟。還是mysql的工程師厚道,給出了嵌入式mysql開發的ptt 根據ppt上詳細的介紹,你還會找到鏈結這是作者寫的乙個win32 dialog 嵌入式mysql 的demo,相當的給力。準備bd.cmd 和 errm...