嵌入式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...