| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef SQL_STATEMENT_H_ | 5 #ifndef SQL_STATEMENT_H_ |
| 6 #define SQL_STATEMENT_H_ | 6 #define SQL_STATEMENT_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "base/memory/ref_counted.h" | 13 #include "base/memory/ref_counted.h" |
| 14 #include "base/string16.h" | 14 #include "base/string16.h" |
| 15 #include "sql/connection.h" | 15 #include "sql/connection.h" |
| 16 #include "sql/sql_export.h" |
| 16 | 17 |
| 17 namespace sql { | 18 namespace sql { |
| 18 | 19 |
| 19 // Possible return values from ColumnType in a statement. These should match | 20 // Possible return values from ColumnType in a statement. These should match |
| 20 // the values in sqlite3.h. | 21 // the values in sqlite3.h. |
| 21 enum ColType { | 22 enum ColType { |
| 22 COLUMN_TYPE_INTEGER = 1, | 23 COLUMN_TYPE_INTEGER = 1, |
| 23 COLUMN_TYPE_FLOAT = 2, | 24 COLUMN_TYPE_FLOAT = 2, |
| 24 COLUMN_TYPE_TEXT = 3, | 25 COLUMN_TYPE_TEXT = 3, |
| 25 COLUMN_TYPE_BLOB = 4, | 26 COLUMN_TYPE_BLOB = 4, |
| 26 COLUMN_TYPE_NULL = 5, | 27 COLUMN_TYPE_NULL = 5, |
| 27 }; | 28 }; |
| 28 | 29 |
| 29 // Normal usage: | 30 // Normal usage: |
| 30 // sql::Statement s(connection_.GetUniqueStatement(...)); | 31 // sql::Statement s(connection_.GetUniqueStatement(...)); |
| 31 // if (!s) // You should check for errors before using the statement. | 32 // if (!s) // You should check for errors before using the statement. |
| 32 // return false; | 33 // return false; |
| 33 // | 34 // |
| 34 // s.BindInt(0, a); | 35 // s.BindInt(0, a); |
| 35 // if (s.Step()) | 36 // if (s.Step()) |
| 36 // return s.ColumnString(0); | 37 // return s.ColumnString(0); |
| 37 // | 38 // |
| 38 // Step() and Run() just return true to signal success. If you want to handle | 39 // Step() and Run() just return true to signal success. If you want to handle |
| 39 // specific errors such as database corruption, install an error handler in | 40 // specific errors such as database corruption, install an error handler in |
| 40 // in the connection object using set_error_delegate(). | 41 // in the connection object using set_error_delegate(). |
| 41 class Statement { | 42 class SQL_EXPORT Statement { |
| 42 public: | 43 public: |
| 43 // Creates an uninitialized statement. The statement will be invalid until | 44 // Creates an uninitialized statement. The statement will be invalid until |
| 44 // you initialize it via Assign. | 45 // you initialize it via Assign. |
| 45 Statement(); | 46 Statement(); |
| 46 | 47 |
| 47 explicit Statement(scoped_refptr<Connection::StatementRef> ref); | 48 explicit Statement(scoped_refptr<Connection::StatementRef> ref); |
| 48 ~Statement(); | 49 ~Statement(); |
| 49 | 50 |
| 50 // Initializes this object with the given statement, which may or may not | 51 // Initializes this object with the given statement, which may or may not |
| 51 // be valid. Use is_valid() to check if it's OK. | 52 // be valid. Use is_valid() to check if it's OK. |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 | 159 |
| 159 // See Succeeded() for what this holds. | 160 // See Succeeded() for what this holds. |
| 160 bool succeeded_; | 161 bool succeeded_; |
| 161 | 162 |
| 162 DISALLOW_COPY_AND_ASSIGN(Statement); | 163 DISALLOW_COPY_AND_ASSIGN(Statement); |
| 163 }; | 164 }; |
| 164 | 165 |
| 165 } // namespace sql | 166 } // namespace sql |
| 166 | 167 |
| 167 #endif // SQL_STATEMENT_H_ | 168 #endif // SQL_STATEMENT_H_ |
| OLD | NEW |