Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "api_database.h"
00035
00036 class CL_DataBuffer;
00037 class CL_DateTime;
00038 class CL_DBConnection;
00039 class CL_DBCommandProvider;
00040 class CL_DBCommand_Impl;
00041
00045 class CL_API_DATABASE CL_DBCommand
00046 {
00049 public:
00050 enum Type
00051 {
00052 stored_procedure,
00053 sql_statement
00054 };
00055
00057 CL_DBCommand();
00058
00062 CL_DBCommand(const CL_SharedPtr<CL_DBCommand_Impl> &impl);
00063
00064 ~CL_DBCommand();
00066
00069 public:
00071 int get_input_parameter_column(const CL_StringRef &name) const;
00072
00074 int get_output_last_insert_rowid() const;
00075
00077 CL_DBCommandProvider *get_provider();
00079
00082 public:
00084 void set_input_parameter_string(int index, const CL_StringRef &value);
00085
00087 void set_input_parameter_bool(int index, bool value);
00088
00090 void set_input_parameter_int(int index, int value);
00091
00093 void set_input_parameter_double(int index, double value);
00094
00096 void set_input_parameter_datetime(int index, const CL_DateTime &value);
00097
00099 void set_input_parameter_binary(int index, const CL_DataBuffer &value);
00100
00102 template<class ValueType>
00103 void set_input_parameter(int index, ValueType value);
00104
00106 template<class ValueType>
00107 void set_input_parameter(const CL_StringRef &name, ValueType value);
00108
00110
00113 private:
00114 CL_SharedPtr<CL_DBCommand_Impl> impl;
00115
00117 };
00118