Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/sql/kernel/qsqlresult.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||
2 | - | |||||||||||||||||||
3 | - | |||||||||||||||||||
4 | - | |||||||||||||||||||
5 | QString QSqlResultPrivate::holderAt(int index) const | - | ||||||||||||||||||
6 | { | - | ||||||||||||||||||
7 | return executed 154 times by 1 test: holders.size() > index ? holders.at(index).holderName : fieldSerial(index);return holders.size() > index ? holders.at(index).holderName : fieldSerial(index); Executed by:
executed 154 times by 1 test: return holders.size() > index ? holders.at(index).holderName : fieldSerial(index); Executed by:
| 154 | ||||||||||||||||||
8 | } | - | ||||||||||||||||||
9 | - | |||||||||||||||||||
10 | - | |||||||||||||||||||
11 | QString QSqlResultPrivate::fieldSerial(int i) const | - | ||||||||||||||||||
12 | { | - | ||||||||||||||||||
13 | ushort arr[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | - | ||||||||||||||||||
14 | ushort *end = &arr[(sizeof(arr)/sizeof(*arr))]; | - | ||||||||||||||||||
15 | ushort *ptr = end; | - | ||||||||||||||||||
16 | - | |||||||||||||||||||
17 | while (i > 0
| 116855-233607 | ||||||||||||||||||
18 | *(--ptr) = 'a' + i % 16; | - | ||||||||||||||||||
19 | i >>= 4; | - | ||||||||||||||||||
20 | } executed 116855 times by 7 tests: end of block Executed by:
| 116855 | ||||||||||||||||||
21 | - | |||||||||||||||||||
22 | const int nb = end - ptr; | - | ||||||||||||||||||
23 | *(--ptr) = 'a' + nb; | - | ||||||||||||||||||
24 | *(--ptr) = ':'; | - | ||||||||||||||||||
25 | - | |||||||||||||||||||
26 | return executed 233607 times by 8 tests: QString::fromUtf16(ptr, int(end - ptr));return QString::fromUtf16(ptr, int(end - ptr)); Executed by:
executed 233607 times by 8 tests: return QString::fromUtf16(ptr, int(end - ptr)); Executed by:
| 233607 | ||||||||||||||||||
27 | } | - | ||||||||||||||||||
28 | - | |||||||||||||||||||
29 | static bool qIsAlnum(QChar ch) | - | ||||||||||||||||||
30 | { | - | ||||||||||||||||||
31 | uint u = uint(ch.unicode()); | - | ||||||||||||||||||
32 | - | |||||||||||||||||||
33 | return executed 97 times by 3 tests: u - 'a' < 26 || u - 'A' < 26 || u - '0' < 10 || u == '_';return u - 'a' < 26 || u - 'A' < 26 || u - '0' < 10 || u == '_'; Executed by:
executed 97 times by 3 tests: return u - 'a' < 26 || u - 'A' < 26 || u - '0' < 10 || u == '_'; Executed by:
| 97 | ||||||||||||||||||
34 | } | - | ||||||||||||||||||
35 | - | |||||||||||||||||||
36 | QString QSqlResultPrivate::positionalToNamedBinding(const QString &query) const | - | ||||||||||||||||||
37 | { | - | ||||||||||||||||||
38 | int n = query.size(); | - | ||||||||||||||||||
39 | - | |||||||||||||||||||
40 | QString result; | - | ||||||||||||||||||
41 | result.reserve(n * 5 / 4); | - | ||||||||||||||||||
42 | QChar closingQuote; | - | ||||||||||||||||||
43 | int count = 0; | - | ||||||||||||||||||
44 | bool ignoreBraces = (sqldriver->dbmsType() == QSqlDriver::PostgreSQL); | - | ||||||||||||||||||
45 | - | |||||||||||||||||||
46 | for (int i = 0; i < n
| 13-253 | ||||||||||||||||||
47 | QChar ch = query.at(i); | - | ||||||||||||||||||
48 | if (!closingQuote.isNull()
| 38-215 | ||||||||||||||||||
49 | if (ch == closingQuote
| 16-22 | ||||||||||||||||||
50 | if (closingQuote == QLatin1Char(']')
| 8 | ||||||||||||||||||
51 | && i + 1 < n
| 0-5 | ||||||||||||||||||
52 | - | |||||||||||||||||||
53 | ++i; | - | ||||||||||||||||||
54 | result += ch; | - | ||||||||||||||||||
55 | } executed 3 times by 1 test: else {end of block Executed by:
| 3 | ||||||||||||||||||
56 | closingQuote = QChar(); | - | ||||||||||||||||||
57 | } executed 13 times by 1 test: end of block Executed by:
| 13 | ||||||||||||||||||
58 | } | - | ||||||||||||||||||
59 | result += ch; | - | ||||||||||||||||||
60 | } executed 38 times by 1 test: else {end of block Executed by:
| 38 | ||||||||||||||||||
61 | if (ch == QLatin1Char('?')
| 10-205 | ||||||||||||||||||
62 | result += fieldSerial(count++); | - | ||||||||||||||||||
63 | } executed 10 times by 1 test: else {end of block Executed by:
| 10 | ||||||||||||||||||
64 | if (ch == QLatin1Char('\'')
| 0-200 | ||||||||||||||||||
65 | closingQuote = ch; executed 8 times by 1 test: closingQuote = ch; Executed by:
| 8 | ||||||||||||||||||
66 | else if (!ignoreBraces
| 0-197 | ||||||||||||||||||
67 | closingQuote = QLatin1Char(']'); executed 5 times by 1 test: closingQuote = QLatin1Char(']'); Executed by:
| 5 | ||||||||||||||||||
68 | result += ch; | - | ||||||||||||||||||
69 | } executed 205 times by 1 test: end of block Executed by:
| 205 | ||||||||||||||||||
70 | } | - | ||||||||||||||||||
71 | } | - | ||||||||||||||||||
72 | result.squeeze(); | - | ||||||||||||||||||
73 | return executed 13 times by 1 test: result;return result; Executed by:
executed 13 times by 1 test: return result; Executed by:
| 13 | ||||||||||||||||||
74 | } | - | ||||||||||||||||||
75 | - | |||||||||||||||||||
76 | QString QSqlResultPrivate::namedToPositionalBinding(const QString &query) | - | ||||||||||||||||||
77 | { | - | ||||||||||||||||||
78 | int n = query.size(); | - | ||||||||||||||||||
79 | - | |||||||||||||||||||
80 | QString result; | - | ||||||||||||||||||
81 | result.reserve(n); | - | ||||||||||||||||||
82 | QChar closingQuote; | - | ||||||||||||||||||
83 | int count = 0; | - | ||||||||||||||||||
84 | int i = 0; | - | ||||||||||||||||||
85 | bool ignoreBraces = (sqldriver->dbmsType() == QSqlDriver::PostgreSQL); | - | ||||||||||||||||||
86 | - | |||||||||||||||||||
87 | while (i < n
| 253-15899 | ||||||||||||||||||
88 | QChar ch = query.at(i); | - | ||||||||||||||||||
89 | if (!closingQuote.isNull()
| 3386-12513 | ||||||||||||||||||
90 | if (ch == closingQuote
| 342-3044 | ||||||||||||||||||
91 | if (closingQuote == QLatin1Char(']')
| 10-332 | ||||||||||||||||||
92 | && i + 1 < n
| 0-7 | ||||||||||||||||||
93 | - | |||||||||||||||||||
94 | ++i; | - | ||||||||||||||||||
95 | result += ch; | - | ||||||||||||||||||
96 | } executed 3 times by 1 test: else {end of block Executed by:
| 3 | ||||||||||||||||||
97 | closingQuote = QChar(); | - | ||||||||||||||||||
98 | } executed 339 times by 4 tests: end of block Executed by:
| 339 | ||||||||||||||||||
99 | } | - | ||||||||||||||||||
100 | result += ch; | - | ||||||||||||||||||
101 | ++i; | - | ||||||||||||||||||
102 | } executed 3386 times by 4 tests: else {end of block Executed by:
| 3386 | ||||||||||||||||||
103 | if (ch == QLatin1Char(':')
| 32-12481 | ||||||||||||||||||
104 | && (i == 0
| 0-32 | ||||||||||||||||||
105 | && (i + 1 < n
| 0-32 | ||||||||||||||||||
106 | int pos = i + 2; | - | ||||||||||||||||||
107 | while (pos < n
| 4-65 | ||||||||||||||||||
108 | ++ executed 37 times by 3 tests: pos;++pos; Executed by:
executed 37 times by 3 tests: ++pos; Executed by:
| 37 | ||||||||||||||||||
109 | QString holder(query.mid(i, pos - i)); | - | ||||||||||||||||||
110 | indexes[holder].append(count++); | - | ||||||||||||||||||
111 | holders.append(QHolder(holder, i)); | - | ||||||||||||||||||
112 | result += QLatin1Char('?'); | - | ||||||||||||||||||
113 | i = pos; | - | ||||||||||||||||||
114 | } executed 32 times by 3 tests: else {end of block Executed by:
| 32 | ||||||||||||||||||
115 | if (ch == QLatin1Char('\'')
| 0-12469 | ||||||||||||||||||
116 | closingQuote = ch; executed 333 times by 4 tests: closingQuote = ch; Executed by:
| 333 | ||||||||||||||||||
117 | else if (!ignoreBraces
| 0-12148 | ||||||||||||||||||
118 | closingQuote = QLatin1Char(']'); executed 7 times by 1 test: closingQuote = QLatin1Char(']'); Executed by:
| 7 | ||||||||||||||||||
119 | result += ch; | - | ||||||||||||||||||
120 | ++i; | - | ||||||||||||||||||
121 | } executed 12481 times by 8 tests: end of block Executed by:
| 12481 | ||||||||||||||||||
122 | } | - | ||||||||||||||||||
123 | } | - | ||||||||||||||||||
124 | result.squeeze(); | - | ||||||||||||||||||
125 | values.resize(holders.size()); | - | ||||||||||||||||||
126 | return executed 253 times by 8 tests: result;return result; Executed by:
executed 253 times by 8 tests: return result; Executed by:
| 253 | ||||||||||||||||||
127 | } | - | ||||||||||||||||||
128 | QSqlResult::QSqlResult(const QSqlDriver *db) | - | ||||||||||||||||||
129 | { | - | ||||||||||||||||||
130 | d_ptr = new QSqlResultPrivate(this, db); | - | ||||||||||||||||||
131 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
132 | if (d->sqldriver
| 0-263 | ||||||||||||||||||
133 | setNumericalPrecisionPolicy(d->sqldriver->numericalPrecisionPolicy()); executed 263 times by 10 tests: setNumericalPrecisionPolicy(d->sqldriver->numericalPrecisionPolicy()); Executed by:
| 263 | ||||||||||||||||||
134 | } executed 263 times by 10 tests: end of block Executed by:
| 263 | ||||||||||||||||||
135 | - | |||||||||||||||||||
136 | - | |||||||||||||||||||
137 | - | |||||||||||||||||||
138 | QSqlResult::QSqlResult(QSqlResultPrivate &dd) | - | ||||||||||||||||||
139 | : d_ptr(&dd) | - | ||||||||||||||||||
140 | { | - | ||||||||||||||||||
141 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
142 | if (d->sqldriver
| 0-1930 | ||||||||||||||||||
143 | setNumericalPrecisionPolicy(d->sqldriver->numericalPrecisionPolicy()); executed 1930 times by 9 tests: setNumericalPrecisionPolicy(d->sqldriver->numericalPrecisionPolicy()); Executed by:
| 1930 | ||||||||||||||||||
144 | } executed 1930 times by 9 tests: end of block Executed by:
| 1930 | ||||||||||||||||||
145 | - | |||||||||||||||||||
146 | - | |||||||||||||||||||
147 | - | |||||||||||||||||||
148 | - | |||||||||||||||||||
149 | - | |||||||||||||||||||
150 | QSqlResult::~QSqlResult() | - | ||||||||||||||||||
151 | { | - | ||||||||||||||||||
152 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
153 | delete d; | - | ||||||||||||||||||
154 | } executed 2193 times by 19 tests: end of block Executed by:
| 2193 | ||||||||||||||||||
155 | void QSqlResult::setQuery(const QString& query) | - | ||||||||||||||||||
156 | { | - | ||||||||||||||||||
157 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
158 | d->sql = query; | - | ||||||||||||||||||
159 | } executed 2556 times by 9 tests: end of block Executed by:
| 2556 | ||||||||||||||||||
160 | QString QSqlResult::lastQuery() const | - | ||||||||||||||||||
161 | { | - | ||||||||||||||||||
162 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
163 | return executed 124 times by 3 tests: d->sql;return d->sql; Executed by:
executed 124 times by 3 tests: return d->sql; Executed by:
| 124 | ||||||||||||||||||
164 | } | - | ||||||||||||||||||
165 | int QSqlResult::at() const | - | ||||||||||||||||||
166 | { | - | ||||||||||||||||||
167 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
168 | return executed 102985 times by 9 tests: d->idx;return d->idx; Executed by:
executed 102985 times by 9 tests: return d->idx; Executed by:
| 102985 | ||||||||||||||||||
169 | } | - | ||||||||||||||||||
170 | bool QSqlResult::isValid() const | - | ||||||||||||||||||
171 | { | - | ||||||||||||||||||
172 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
173 | return executed 9655 times by 8 tests: d->idx != QSql::BeforeFirstRow && d->idx != QSql::AfterLastRow;return d->idx != QSql::BeforeFirstRow && d->idx != QSql::AfterLastRow; Executed by:
executed 9655 times by 8 tests: return d->idx != QSql::BeforeFirstRow && d->idx != QSql::AfterLastRow; Executed by:
| 9655 | ||||||||||||||||||
174 | } | - | ||||||||||||||||||
175 | bool QSqlResult::isActive() const | - | ||||||||||||||||||
176 | { | - | ||||||||||||||||||
177 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
178 | return executed 20165 times by 9 tests: d->active;return d->active; Executed by:
executed 20165 times by 9 tests: return d->active; Executed by:
| 20165 | ||||||||||||||||||
179 | } | - | ||||||||||||||||||
180 | void QSqlResult::setAt(int index) | - | ||||||||||||||||||
181 | { | - | ||||||||||||||||||
182 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
183 | d->idx = index; | - | ||||||||||||||||||
184 | } executed 292516 times by 9 tests: end of block Executed by:
| 292516 | ||||||||||||||||||
185 | void QSqlResult::setSelect(bool select) | - | ||||||||||||||||||
186 | { | - | ||||||||||||||||||
187 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
188 | d->isSel = select; | - | ||||||||||||||||||
189 | } executed 121899 times by 9 tests: end of block Executed by:
| 121899 | ||||||||||||||||||
190 | bool QSqlResult::isSelect() const | - | ||||||||||||||||||
191 | { | - | ||||||||||||||||||
192 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
193 | return executed 7589 times by 9 tests: d->isSel;return d->isSel; Executed by:
executed 7589 times by 9 tests: return d->isSel; Executed by:
| 7589 | ||||||||||||||||||
194 | } | - | ||||||||||||||||||
195 | - | |||||||||||||||||||
196 | - | |||||||||||||||||||
197 | - | |||||||||||||||||||
198 | - | |||||||||||||||||||
199 | - | |||||||||||||||||||
200 | - | |||||||||||||||||||
201 | const QSqlDriver *QSqlResult::driver() const | - | ||||||||||||||||||
202 | { | - | ||||||||||||||||||
203 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
204 | return executed 15818 times by 10 tests: d->sqldriver;return d->sqldriver; Executed by:
executed 15818 times by 10 tests: return d->sqldriver; Executed by:
| 15818 | ||||||||||||||||||
205 | } | - | ||||||||||||||||||
206 | void QSqlResult::setActive(bool active) | - | ||||||||||||||||||
207 | { | - | ||||||||||||||||||
208 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
209 | if (active
| 1237-107291 | ||||||||||||||||||
210 | d->executedQuery = d->sql; executed 1237 times by 9 tests: d->executedQuery = d->sql; Executed by:
| 1237 | ||||||||||||||||||
211 | - | |||||||||||||||||||
212 | d->active = active; | - | ||||||||||||||||||
213 | } executed 134127 times by 9 tests: end of block Executed by:
| 134127 | ||||||||||||||||||
214 | void QSqlResult::setLastError(const QSqlError &error) | - | ||||||||||||||||||
215 | { | - | ||||||||||||||||||
216 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
217 | d->error = error; | - | ||||||||||||||||||
218 | } executed 306686 times by 9 tests: end of block Executed by:
| 306686 | ||||||||||||||||||
219 | - | |||||||||||||||||||
220 | - | |||||||||||||||||||
221 | - | |||||||||||||||||||
222 | - | |||||||||||||||||||
223 | - | |||||||||||||||||||
224 | - | |||||||||||||||||||
225 | QSqlError QSqlResult::lastError() const | - | ||||||||||||||||||
226 | { | - | ||||||||||||||||||
227 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
228 | return executed 246932 times by 9 tests: d->error;return d->error; Executed by:
executed 246932 times by 9 tests: return d->error; Executed by:
| 246932 | ||||||||||||||||||
229 | } | - | ||||||||||||||||||
230 | bool QSqlResult::fetchNext() | - | ||||||||||||||||||
231 | { | - | ||||||||||||||||||
232 | return never executed: fetch(at() + 1);return fetch(at() + 1); never executed: return fetch(at() + 1); | 0 | ||||||||||||||||||
233 | } | - | ||||||||||||||||||
234 | bool QSqlResult::fetchPrevious() | - | ||||||||||||||||||
235 | { | - | ||||||||||||||||||
236 | return never executed: fetch(at() - 1);return fetch(at() - 1); never executed: return fetch(at() - 1); | 0 | ||||||||||||||||||
237 | } | - | ||||||||||||||||||
238 | - | |||||||||||||||||||
239 | - | |||||||||||||||||||
240 | - | |||||||||||||||||||
241 | - | |||||||||||||||||||
242 | - | |||||||||||||||||||
243 | - | |||||||||||||||||||
244 | - | |||||||||||||||||||
245 | bool QSqlResult::isForwardOnly() const | - | ||||||||||||||||||
246 | { | - | ||||||||||||||||||
247 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
248 | return executed 42251 times by 9 tests: d->forwardOnly;return d->forwardOnly; Executed by:
executed 42251 times by 9 tests: return d->forwardOnly; Executed by:
| 42251 | ||||||||||||||||||
249 | } | - | ||||||||||||||||||
250 | void QSqlResult::setForwardOnly(bool forward) | - | ||||||||||||||||||
251 | { | - | ||||||||||||||||||
252 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
253 | d->forwardOnly = forward; | - | ||||||||||||||||||
254 | } executed 645 times by 9 tests: end of block Executed by:
| 645 | ||||||||||||||||||
255 | bool QSqlResult::savePrepare(const QString& query) | - | ||||||||||||||||||
256 | { | - | ||||||||||||||||||
257 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
258 | if (!driver()
| 0-245 | ||||||||||||||||||
259 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
260 | d->clear(); | - | ||||||||||||||||||
261 | d->sql = query; | - | ||||||||||||||||||
262 | if (!driver()->hasFeature(QSqlDriver::PreparedQueries)
| 0-245 | ||||||||||||||||||
263 | return never executed: prepare(query);return prepare(query); never executed: return prepare(query); | 0 | ||||||||||||||||||
264 | - | |||||||||||||||||||
265 | - | |||||||||||||||||||
266 | d->executedQuery = d->namedToPositionalBinding(query); | - | ||||||||||||||||||
267 | - | |||||||||||||||||||
268 | if (driver()->hasFeature(QSqlDriver::NamedPlaceholders)
| 13-232 | ||||||||||||||||||
269 | d->executedQuery = d->positionalToNamedBinding(query); executed 13 times by 1 test: d->executedQuery = d->positionalToNamedBinding(query); Executed by:
| 13 | ||||||||||||||||||
270 | - | |||||||||||||||||||
271 | return executed 245 times by 8 tests: prepare(d->executedQuery);return prepare(d->executedQuery); Executed by:
executed 245 times by 8 tests: return prepare(d->executedQuery); Executed by:
| 245 | ||||||||||||||||||
272 | } | - | ||||||||||||||||||
273 | bool QSqlResult::prepare(const QString& query) | - | ||||||||||||||||||
274 | { | - | ||||||||||||||||||
275 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
276 | d->sql = query; | - | ||||||||||||||||||
277 | if (d->holders.isEmpty()
| 5-8 | ||||||||||||||||||
278 | - | |||||||||||||||||||
279 | d->namedToPositionalBinding(query); | - | ||||||||||||||||||
280 | } executed 8 times by 1 test: end of block Executed by:
| 8 | ||||||||||||||||||
281 | return executed 13 times by 1 test: true;return true; Executed by:
executed 13 times by 1 test: return true; Executed by:
| 13 | ||||||||||||||||||
282 | } | - | ||||||||||||||||||
283 | - | |||||||||||||||||||
284 | - | |||||||||||||||||||
285 | - | |||||||||||||||||||
286 | - | |||||||||||||||||||
287 | - | |||||||||||||||||||
288 | - | |||||||||||||||||||
289 | - | |||||||||||||||||||
290 | bool QSqlResult::exec() | - | ||||||||||||||||||
291 | { | - | ||||||||||||||||||
292 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
293 | bool ret; | - | ||||||||||||||||||
294 | - | |||||||||||||||||||
295 | QString query = lastQuery(); | - | ||||||||||||||||||
296 | if (d->binds == NamedBinding
| 0 | ||||||||||||||||||
297 | int i; | - | ||||||||||||||||||
298 | QVariant val; | - | ||||||||||||||||||
299 | QString holder; | - | ||||||||||||||||||
300 | for (i = d->holders.count() - 1; i >= 0
| 0 | ||||||||||||||||||
301 | holder = d->holders.at(i).holderName; | - | ||||||||||||||||||
302 | val = d->values.value(d->indexes.value(holder).value(0,-1)); | - | ||||||||||||||||||
303 | QSqlField f(QLatin1String(""), val.type()); | - | ||||||||||||||||||
304 | f.setValue(val); | - | ||||||||||||||||||
305 | query = query.replace(d->holders.at(i).holderPos, | - | ||||||||||||||||||
306 | holder.length(), driver()->formatValue(f)); | - | ||||||||||||||||||
307 | } never executed: end of block | 0 | ||||||||||||||||||
308 | } never executed: else {end of block | 0 | ||||||||||||||||||
309 | QString val; | - | ||||||||||||||||||
310 | int i = 0; | - | ||||||||||||||||||
311 | int idx = 0; | - | ||||||||||||||||||
312 | for (idx = 0; idx < d->values.count()
| 0 | ||||||||||||||||||
313 | i = query.indexOf(QLatin1Char('?'), i); | - | ||||||||||||||||||
314 | if (i == -1
| 0 | ||||||||||||||||||
315 | continue; never executed: continue; | 0 | ||||||||||||||||||
316 | QVariant var = d->values.value(idx); | - | ||||||||||||||||||
317 | QSqlField f(QLatin1String(""), var.type()); | - | ||||||||||||||||||
318 | if (var.isNull()
| 0 | ||||||||||||||||||
319 | f.clear(); never executed: f.clear(); | 0 | ||||||||||||||||||
320 | else | - | ||||||||||||||||||
321 | f.setValue(var); never executed: f.setValue(var); | 0 | ||||||||||||||||||
322 | val = driver()->formatValue(f); | - | ||||||||||||||||||
323 | query = query.replace(i, 1, driver()->formatValue(f)); | - | ||||||||||||||||||
324 | i += val.length(); | - | ||||||||||||||||||
325 | } never executed: end of block | 0 | ||||||||||||||||||
326 | } never executed: end of block | 0 | ||||||||||||||||||
327 | - | |||||||||||||||||||
328 | - | |||||||||||||||||||
329 | QString orig = lastQuery(); | - | ||||||||||||||||||
330 | ret = reset(query); | - | ||||||||||||||||||
331 | d->executedQuery = query; | - | ||||||||||||||||||
332 | setQuery(orig); | - | ||||||||||||||||||
333 | d->resetBindCount(); | - | ||||||||||||||||||
334 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||||||||
335 | } | - | ||||||||||||||||||
336 | - | |||||||||||||||||||
337 | - | |||||||||||||||||||
338 | - | |||||||||||||||||||
339 | - | |||||||||||||||||||
340 | - | |||||||||||||||||||
341 | - | |||||||||||||||||||
342 | - | |||||||||||||||||||
343 | void QSqlResult::bindValue(int index, const QVariant& val, QSql::ParamType paramType) | - | ||||||||||||||||||
344 | { | - | ||||||||||||||||||
345 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
346 | d->binds = PositionalBinding; | - | ||||||||||||||||||
347 | QList<int>& indexes = d->indexes[d->fieldSerial(index)]; | - | ||||||||||||||||||
348 | if (!indexes.contains(index)
| 467-232988 | ||||||||||||||||||
349 | indexes.append(index); executed 467 times by 7 tests: indexes.append(index); Executed by:
| 467 | ||||||||||||||||||
350 | if (d->values.count() <= index
| 467-232988 | ||||||||||||||||||
351 | d->values.resize(index + 1); executed 467 times by 7 tests: d->values.resize(index + 1); Executed by:
| 467 | ||||||||||||||||||
352 | d->values[index] = val; | - | ||||||||||||||||||
353 | if (paramType != QSql::In
| 0-233455 | ||||||||||||||||||
354 | d->types[index] = paramType; never executed: d->types[index] = paramType; | 0 | ||||||||||||||||||
355 | } executed 233455 times by 7 tests: end of block Executed by:
| 233455 | ||||||||||||||||||
356 | void QSqlResult::bindValue(const QString& placeholder, const QVariant& val, | - | ||||||||||||||||||
357 | QSql::ParamType paramType) | - | ||||||||||||||||||
358 | { | - | ||||||||||||||||||
359 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
360 | d->binds = NamedBinding; | - | ||||||||||||||||||
361 | - | |||||||||||||||||||
362 | - | |||||||||||||||||||
363 | const QList<int> indexes = d->indexes.value(placeholder); | - | ||||||||||||||||||
364 | for (int idx : indexes) { | - | ||||||||||||||||||
365 | if (d->values.count() <= idx
| 0-40 | ||||||||||||||||||
366 | d->values.resize(idx + 1); never executed: d->values.resize(idx + 1); | 0 | ||||||||||||||||||
367 | d->values[idx] = val; | - | ||||||||||||||||||
368 | if (paramType != QSql::In
| 0-40 | ||||||||||||||||||
369 | d->types[idx] = paramType; never executed: d->types[idx] = paramType; | 0 | ||||||||||||||||||
370 | } executed 40 times by 1 test: end of block Executed by:
| 40 | ||||||||||||||||||
371 | } executed 48 times by 2 tests: end of block Executed by:
| 48 | ||||||||||||||||||
372 | - | |||||||||||||||||||
373 | - | |||||||||||||||||||
374 | - | |||||||||||||||||||
375 | - | |||||||||||||||||||
376 | - | |||||||||||||||||||
377 | - | |||||||||||||||||||
378 | - | |||||||||||||||||||
379 | void QSqlResult::addBindValue(const QVariant& val, QSql::ParamType paramType) | - | ||||||||||||||||||
380 | { | - | ||||||||||||||||||
381 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
382 | d->binds = PositionalBinding; | - | ||||||||||||||||||
383 | bindValue(d->bindCount, val, paramType); | - | ||||||||||||||||||
384 | ++d->bindCount; | - | ||||||||||||||||||
385 | } executed 233364 times by 5 tests: end of block Executed by:
| 233364 | ||||||||||||||||||
386 | - | |||||||||||||||||||
387 | - | |||||||||||||||||||
388 | - | |||||||||||||||||||
389 | - | |||||||||||||||||||
390 | - | |||||||||||||||||||
391 | - | |||||||||||||||||||
392 | - | |||||||||||||||||||
393 | QVariant QSqlResult::boundValue(int index) const | - | ||||||||||||||||||
394 | { | - | ||||||||||||||||||
395 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
396 | return executed 1 time by 1 test: d->values.value(index);return d->values.value(index); Executed by:
executed 1 time by 1 test: return d->values.value(index); Executed by:
| 1 | ||||||||||||||||||
397 | } | - | ||||||||||||||||||
398 | QVariant QSqlResult::boundValue(const QString& placeholder) const | - | ||||||||||||||||||
399 | { | - | ||||||||||||||||||
400 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
401 | QList<int> indexes = d->indexes.value(placeholder); | - | ||||||||||||||||||
402 | return never executed: d->values.value(indexes.value(0,-1));return d->values.value(indexes.value(0,-1)); never executed: return d->values.value(indexes.value(0,-1)); | 0 | ||||||||||||||||||
403 | } | - | ||||||||||||||||||
404 | - | |||||||||||||||||||
405 | - | |||||||||||||||||||
406 | - | |||||||||||||||||||
407 | - | |||||||||||||||||||
408 | - | |||||||||||||||||||
409 | - | |||||||||||||||||||
410 | QSql::ParamType QSqlResult::bindValueType(int index) const | - | ||||||||||||||||||
411 | { | - | ||||||||||||||||||
412 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
413 | return never executed: d->types.value(index, QSql::In);return d->types.value(index, QSql::In); never executed: return d->types.value(index, QSql::In); | 0 | ||||||||||||||||||
414 | } | - | ||||||||||||||||||
415 | - | |||||||||||||||||||
416 | - | |||||||||||||||||||
417 | - | |||||||||||||||||||
418 | - | |||||||||||||||||||
419 | - | |||||||||||||||||||
420 | - | |||||||||||||||||||
421 | - | |||||||||||||||||||
422 | QSql::ParamType QSqlResult::bindValueType(const QString& placeholder) const | - | ||||||||||||||||||
423 | { | - | ||||||||||||||||||
424 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
425 | return never executed: d->types.value(d->indexes.value(placeholder).value(0,-1), QSql::In);return d->types.value(d->indexes.value(placeholder).value(0,-1), QSql::In); never executed: return d->types.value(d->indexes.value(placeholder).value(0,-1), QSql::In); | 0 | ||||||||||||||||||
426 | } | - | ||||||||||||||||||
427 | - | |||||||||||||||||||
428 | - | |||||||||||||||||||
429 | - | |||||||||||||||||||
430 | - | |||||||||||||||||||
431 | - | |||||||||||||||||||
432 | - | |||||||||||||||||||
433 | int QSqlResult::boundValueCount() const | - | ||||||||||||||||||
434 | { | - | ||||||||||||||||||
435 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
436 | return never executed: d->values.count();return d->values.count(); never executed: return d->values.count(); | 0 | ||||||||||||||||||
437 | } | - | ||||||||||||||||||
438 | - | |||||||||||||||||||
439 | - | |||||||||||||||||||
440 | - | |||||||||||||||||||
441 | - | |||||||||||||||||||
442 | - | |||||||||||||||||||
443 | - | |||||||||||||||||||
444 | - | |||||||||||||||||||
445 | QVector<QVariant>& QSqlResult::boundValues() const | - | ||||||||||||||||||
446 | { | - | ||||||||||||||||||
447 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
448 | return executed 119177 times by 10 tests: const_cast<QSqlResultPrivate *>(d)->values;return const_cast<QSqlResultPrivate *>(d)->values; Executed by:
executed 119177 times by 10 tests: return const_cast<QSqlResultPrivate *>(d)->values; Executed by:
| 119177 | ||||||||||||||||||
449 | } | - | ||||||||||||||||||
450 | - | |||||||||||||||||||
451 | - | |||||||||||||||||||
452 | - | |||||||||||||||||||
453 | - | |||||||||||||||||||
454 | QSqlResult::BindingSyntax QSqlResult::bindingSyntax() const | - | ||||||||||||||||||
455 | { | - | ||||||||||||||||||
456 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
457 | return never executed: d->binds;return d->binds; never executed: return d->binds; | 0 | ||||||||||||||||||
458 | } | - | ||||||||||||||||||
459 | - | |||||||||||||||||||
460 | - | |||||||||||||||||||
461 | - | |||||||||||||||||||
462 | - | |||||||||||||||||||
463 | - | |||||||||||||||||||
464 | void QSqlResult::clear() | - | ||||||||||||||||||
465 | { | - | ||||||||||||||||||
466 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
467 | d->clear(); | - | ||||||||||||||||||
468 | } executed 2553 times by 9 tests: end of block Executed by:
| 2553 | ||||||||||||||||||
469 | QString QSqlResult::executedQuery() const | - | ||||||||||||||||||
470 | { | - | ||||||||||||||||||
471 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
472 | return executed 1 time by 1 test: d->executedQuery;return d->executedQuery; Executed by:
executed 1 time by 1 test: return d->executedQuery; Executed by:
| 1 | ||||||||||||||||||
473 | } | - | ||||||||||||||||||
474 | - | |||||||||||||||||||
475 | - | |||||||||||||||||||
476 | - | |||||||||||||||||||
477 | - | |||||||||||||||||||
478 | void QSqlResult::resetBindCount() | - | ||||||||||||||||||
479 | { | - | ||||||||||||||||||
480 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
481 | d->resetBindCount(); | - | ||||||||||||||||||
482 | } executed 116730 times by 7 tests: end of block Executed by:
| 116730 | ||||||||||||||||||
483 | - | |||||||||||||||||||
484 | - | |||||||||||||||||||
485 | - | |||||||||||||||||||
486 | - | |||||||||||||||||||
487 | - | |||||||||||||||||||
488 | - | |||||||||||||||||||
489 | - | |||||||||||||||||||
490 | QString QSqlResult::boundValueName(int index) const | - | ||||||||||||||||||
491 | { | - | ||||||||||||||||||
492 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
493 | return executed 154 times by 1 test: d->holderAt(index);return d->holderAt(index); Executed by:
executed 154 times by 1 test: return d->holderAt(index); Executed by:
| 154 | ||||||||||||||||||
494 | } | - | ||||||||||||||||||
495 | - | |||||||||||||||||||
496 | - | |||||||||||||||||||
497 | - | |||||||||||||||||||
498 | - | |||||||||||||||||||
499 | - | |||||||||||||||||||
500 | - | |||||||||||||||||||
501 | - | |||||||||||||||||||
502 | bool QSqlResult::hasOutValues() const | - | ||||||||||||||||||
503 | { | - | ||||||||||||||||||
504 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
505 | if (d->types.isEmpty()
| 0 | ||||||||||||||||||
506 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
507 | QHash<int, QSql::ParamType>::ConstIterator it; | - | ||||||||||||||||||
508 | for (it = d->types.constBegin(); it != d->types.constEnd()
| 0 | ||||||||||||||||||
509 | if (it.value() != QSql::In
| 0 | ||||||||||||||||||
510 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||
511 | } never executed: end of block | 0 | ||||||||||||||||||
512 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
513 | } | - | ||||||||||||||||||
514 | QSqlRecord QSqlResult::record() const | - | ||||||||||||||||||
515 | { | - | ||||||||||||||||||
516 | return never executed: QSqlRecord();return QSqlRecord(); never executed: return QSqlRecord(); | 0 | ||||||||||||||||||
517 | } | - | ||||||||||||||||||
518 | QVariant QSqlResult::lastInsertId() const | - | ||||||||||||||||||
519 | { | - | ||||||||||||||||||
520 | return never executed: QVariant();return QVariant(); never executed: return QVariant(); | 0 | ||||||||||||||||||
521 | } | - | ||||||||||||||||||
522 | - | |||||||||||||||||||
523 | - | |||||||||||||||||||
524 | - | |||||||||||||||||||
525 | void QSqlResult::virtual_hook(int, void *) | - | ||||||||||||||||||
526 | { | - | ||||||||||||||||||
527 | } | - | ||||||||||||||||||
528 | bool QSqlResult::execBatch(bool arrayBind) | - | ||||||||||||||||||
529 | { | - | ||||||||||||||||||
530 | (void)arrayBind;; | - | ||||||||||||||||||
531 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
532 | - | |||||||||||||||||||
533 | QVector<QVariant> values = d->values; | - | ||||||||||||||||||
534 | if (values.count() == 0
| 0-2 | ||||||||||||||||||
535 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
536 | for (int i = 0; i < values.at(0).toList().count()
| 2 | ||||||||||||||||||
537 | for (int j = 0; j < values.count()
| 2 | ||||||||||||||||||
538 | bindValue(j, values.at(j).toList().at(i), QSql::In); executed 2 times by 1 test: bindValue(j, values.at(j).toList().at(i), QSql::In); Executed by:
| 2 | ||||||||||||||||||
539 | if (!exec()
| 0-2 | ||||||||||||||||||
540 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
541 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||||||||
542 | return executed 2 times by 1 test: true;return true; Executed by:
executed 2 times by 1 test: return true; Executed by:
| 2 | ||||||||||||||||||
543 | } | - | ||||||||||||||||||
544 | - | |||||||||||||||||||
545 | - | |||||||||||||||||||
546 | - | |||||||||||||||||||
547 | void QSqlResult::detachFromResultSet() | - | ||||||||||||||||||
548 | { | - | ||||||||||||||||||
549 | } | - | ||||||||||||||||||
550 | - | |||||||||||||||||||
551 | - | |||||||||||||||||||
552 | - | |||||||||||||||||||
553 | void QSqlResult::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy) | - | ||||||||||||||||||
554 | { | - | ||||||||||||||||||
555 | QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
556 | d->precisionPolicy = policy; | - | ||||||||||||||||||
557 | } executed 4989 times by 10 tests: end of block Executed by:
| 4989 | ||||||||||||||||||
558 | - | |||||||||||||||||||
559 | - | |||||||||||||||||||
560 | - | |||||||||||||||||||
561 | QSql::NumericalPrecisionPolicy QSqlResult::numericalPrecisionPolicy() const | - | ||||||||||||||||||
562 | { | - | ||||||||||||||||||
563 | const QSqlResultPrivate * const d = d_func(); | - | ||||||||||||||||||
564 | return executed 2806 times by 9 tests: d->precisionPolicy;return d->precisionPolicy; Executed by:
executed 2806 times by 9 tests: return d->precisionPolicy; Executed by:
| 2806 | ||||||||||||||||||
565 | } | - | ||||||||||||||||||
566 | - | |||||||||||||||||||
567 | - | |||||||||||||||||||
568 | - | |||||||||||||||||||
569 | bool QSqlResult::nextResult() | - | ||||||||||||||||||
570 | { | - | ||||||||||||||||||
571 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||
572 | } | - | ||||||||||||||||||
573 | QVariant QSqlResult::handle() const | - | ||||||||||||||||||
574 | { | - | ||||||||||||||||||
575 | return never executed: QVariant();return QVariant(); never executed: return QVariant(); | 0 | ||||||||||||||||||
576 | } | - | ||||||||||||||||||
577 | - | |||||||||||||||||||
578 | - | |||||||||||||||||||
Switch to Source code | Preprocessed file |