7 #include "motorconst.h"
8 #include <boost/ptr_container/ptr_vector.hpp>
11 #include <db5/dbsql.h>
20 class ustringptr_vector: public std::vector<ustring*> {
22 ustringptr_vector () {};
23 virtual ~ustringptr_vector () {
26 virtual void clear () {
27 ustringptr_vector::const_iterator it;
28 for (it = begin (); it < end (); it ++) {
33 std::vector<ustring*>::clear ();
35 // virtual ustring* at (size_type pos);
36 // virtual ustring* back ();
40 class MLSqlite3: public MLFunc {
42 typedef ustringptr_vector namearray;
46 MLSqlite3::namearray bindName;
47 MLSqlite3::namearray bindValue;
57 answertype = COL_LIST;
59 virtual ~fsqlParam () {};
75 MLSqlite3 (MlEnv* _mlenv): MLFunc (cMLSqlite3ID, _mlenv) {
84 virtual ~MLSqlite3 () {
88 virtual int open (ustring& name);
89 virtual void close ();
90 virtual void finalize ();
91 virtual int prepare (const ustring& sql);
92 virtual void bind (namearray& name, namearray& value);
93 virtual void bind (namearray& value);
96 virtual bool isReady () {
97 return (dbst != NULL);
99 virtual MNode* answer_list ();
100 virtual MNode* answer_list_ary ();
101 virtual MNode* answer_vector ();
102 virtual MNode* answer_vector_ary ();
103 virtual MNode* answer_vectorlist_ary ();
104 virtual sqlite3_int64 rowid ();
105 virtual void postError (ustring msg);
106 // virtual int sql (ustring query);
107 virtual int sql_s (const ustring& query);
108 virtual void setBreak ();
109 virtual ustring errmsg ();
112 MNode* ml_sqlite3 (MNode* cell, MlEnv* mlenv);
113 MNode* ml_sqlite3_sql (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
114 MNode* ml_sqlite3_sql_ary (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
115 MNode* ml_sqlite3_sqlv (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
116 MNode* ml_sqlite3_sqlv_ary (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
117 MNode* ml_sqlite3_sqllv_ary (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
118 MNode* ml_sqlite3_rowid (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
119 MNode* ml_sqlite3_escape_like (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
120 MNode* ml_sqlite3_begin_transaction (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
121 MNode* ml_sqlite3_rollback (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
123 #endif /* ML_SQLITE3_H */