Develop and Download Open Source Software

Browse CVS Repository

Contents of /xoonips/AL/criteria.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download) (as text)
Tue Mar 15 04:49:40 2005 UTC (19 years ago) by tani
Branch: MAIN
CVS Tags: RELEASE_1_0_0, RELEASE_1_0_1
Changes since 1.3: +24 -1 lines
File MIME type: text/x-c++src
ライセンス文を追加.

1 /*
2 * --------------------------------------------------------------------------
3 * XooNiPs Xoops modules for Neuroinformatics Platforms
4 * Copyright (C) 2005 RIKEN, Japan. All rights reserved.
5 * http://sourceforge.jp/projects/xoonips/
6 * --------------------------------------------------------------------------
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 * --------------------------------------------------------------------------
21 *
22 * SQL鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申criteria鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
23 *
24 * $Revision: 1.3 $
25 * $Log: criteria.cc,v $
26 * Revision 1.3 2004/11/27 01:08:08 youi
27 * clearAll:orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申.
28 *
29 * Revision 1.2 2004/11/27 00:39:57 youi
30 * orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申column鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申.
31 *
32 * Revision 1.1 2004/11/24 06:54:31 youi
33 * initial version
34 *
35 *
36 */
37 #include <stdlib.h>
38 #include <string.h>
39
40 #include "common.h"
41 #include "criteria.h"
42
43 /**
44 * SQL鐃緒申ORDERBY鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
45 *
46 * @param column 鐃緒申鐃緒申鐃緒申鐃緒申
47 * @param order 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申鐃緒申鐃緒申 orderby::ASC)
48 * @ref orderby::ASC
49 * @ref orderby::DESC
50 *
51 */
52 orderby::orderby( const char* column = "", int order = orderby::ASC ){
53 this -> column = 0;
54 setValue( &this -> column, column );
55 this -> order = order;
56 this -> next = 0;
57 }
58
59 /**
60 *
61 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
62 *
63 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
64 *
65 */
66 orderby::~orderby( ){
67 delete this -> column;
68 }
69
70 /**
71 *
72 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
73 * @return 鐃緒申鐃緒申鐃緒申鐃緒申
74 *
75 */
76 const char* orderby::getColumn( ) const { return column; }
77
78 /**
79 *
80 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
81 * @return 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
82 * @ref orderby::ASC
83 * @ref orderby::DESC
84 *
85 */
86 order_t orderby::getOrder( ) const{ return order; }
87
88 /**
89 *
90 * SQL鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(LIMIT)鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申)鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
91 * 鐃緒申.
92 *
93 */
94 criteria::criteria( )
95 {
96 start = 0;
97 rows = 0;
98 indexOfOrders = 0;
99 ordersLen = 0;
100 ordersMax = 16;
101 orders = new orderby*[ ordersMax ];
102 memset( orders, 0, sizeof( orderby* ) * ordersMax );
103 }
104
105 /**
106 *
107 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
108 *
109 * addOrderBy鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
110 *
111 * @ref addOrderBy
112 *
113 */
114 criteria::~criteria( )
115 {
116 if( orders != 0 ){
117 for( int i = 0; i < ordersLen; i++ ) delete orders[ i ];
118 delete[] orders;
119 }
120 }
121
122 /**
123 *
124 * SQL鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申.
125 *
126 * @param start 鐃緒申鐃緒申鐃緒申
127 * @param rows 鐃緒申鐃緒申
128 *
129 */
130 void criteria::setLimit( int start , int rows )
131 {
132 this -> start = start;
133 this -> rows = rows;
134 }
135
136 /**
137 *
138 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申SQL鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
139 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
140 *
141 * @param order orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
142 *
143 */
144 void criteria::addOrderBy( orderby *order )
145 {
146 if( ordersMax == ordersLen ){
147 //orders鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
148 orderby** ptr = new orderby*[ ordersMax * 2 ];
149 memset( ptr, 0, sizeof( orderby* ) * ordersMax * 2 );
150 memcpy( ptr, orders, sizeof( orderby* ) * ordersMax );
151 delete[] orders;
152 ordersMax *= 2;
153 orders = ptr;
154 }
155 orders[ ordersLen ] = order;
156 ordersLen++;
157 }
158
159 /**
160 *
161 * 鐃緒申鐃緒申鐃緒申orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申. 2鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申orderby鐃緒申nextOrderBy鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申.<br>
162 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(unsafe)鐃緒申鐃緒申
163 *
164 * @return 鐃緒申鐃緒申鐃緒申orderby
165 * @return 0 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申orderby鐃緒申鐃緒申鐃緒申
166 * @ref nextOrderBy
167 *
168 */
169 const orderby* criteria::headOrderBy( )
170 {
171 indexOfOrders = 0;
172 if( indexOfOrders >= ordersLen ) return 0;
173 return orders[ indexOfOrders++ ];
174 }
175
176 /**
177 *
178 * orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申.<br>
179 * 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申(unsafe)鐃緒申鐃緒申
180 *
181 * @return orderby鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
182 * @return 0 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申orderby鐃緒申鐃緒申鐃緒申
183 * @ref headNextOrderBy
184 *
185 */
186 const orderby* criteria::nextOrderBy( )
187 {
188 if( indexOfOrders >= ordersLen ) return 0;
189 return orders[ indexOfOrders++ ];
190 }
191
192 /**
193 *
194 * LIMIT鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申ORDERBY鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申.
195 *
196 */
197 void criteria::clearAll( )
198 {
199 for( int i = 0; i < ordersLen; i++ ) delete orders[ i ];
200 memset( orders, 0, sizeof( orderby* ) * ordersMax );
201 ordersLen = 0;
202 start = rows = 0;
203 }
204
205 /**
206 *
207 * LIMIT鐃緒申鐃緒申鐃緒申鐃緒申
208 *
209 * @return
210 *
211 */
212 int criteria::getLimitStart( ) const { return start; }
213
214 /**
215 *
216 * LIMIT鐃緒申鐃緒申鐃緒申
217 *
218 * @return
219 *
220 */
221 int criteria::getLimitRows( ) const{ return rows; }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26