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);
00101
00104 private:
00105 CL_SharedPtr<CL_DBCommand_Impl> impl;
00106
00108 };
00109