37 static char*
getParam(
char tag,
int argc,
char* argv[],
bool* flag= 0)
39 for(
int i= 1;
i < argc;
i++) {
40 if(((*argv[
i] ==
'-') || (*argv[
i] ==
'/')) &&
41 (*(argv[
i]+1) ==
tag)) {
45 if(*(argv[
i]+2) ==
'\0') {
48 if(*argv[
i+1] != *argv[
i])
65 int main(
int argc,
char* argv[])
77 <<
" [-d<driver_name>] [-S<server_name>]"
78 <<
" [-U<user_name>] [-P<password>] [-Q<query> | -T<table_name> -K<blob_id>] [-Z<compress_method>]"
83 const char* p=
getParam(
'S', argc, argv);
85 p= getenv(
"SQL_SERVER");
87 server_name= p? p :
"MSDEV1";
93 p= getenv(
"DBAPI_DRIVER");
95 driver_name= (server_name.find(
"MS") !=
NPOS)?
"ftds" :
"ctlib";
102 p= getenv(
"SQL_USER");
104 user_name= p? p :
"anyone";
108 p= getenv(
"SQL_PASSWD");
110 passwd= p? p :
"allowed";
115 if(*p ==
'z') cm=
eZLib;
126 query=
"set TEXTSIZE 2147483647 ";
127 cout <<
"query is on ctdin" << endl;
140 p= getenv(
"DATA_TABLE");
153 unique_ptr<I_DriverContext> my_context(drv_mgr.
GetDriverContext(driver_name,
156 cerr <<
"blobreader: Cannot load a driver " << driver_name <<
" ["
157 << err_msg <<
"] " << endl;
161 CDB_Connection* con= my_context->Connect(server_name, user_name, passwd, 0,
true);
173 query=
"set TEXTSIZE 2147483647 select ";
188 for(
unsigned int j= 0; j <
n; j++) {
189 switch (
r->ItemDataType(j)) {
193 key_col_name=
r->ItemName(j);
200 num_col_name=
r->ItemName(j);
224 if((!blob_key.empty()) && (!key_col_name.empty())) {
225 query+=
" where " + key_col_name +
"= '" + blob_key +
"'";
226 if(!num_col_name.empty()) {
227 query+=
" order by " + num_col_name;
230 else if(!key_col_name.empty()) {
231 query+=
" order by " + key_col_name;
232 if(!num_col_name.empty()) {
233 query+=
"," + num_col_name;
int main(int argc, char *argv[])
static char * getParam(char tag, int argc, char *argv[], bool *flag=0)
bool Dump(ostream &s, ECompressMethod cm=eNone)
iterator_bool insert(const value_type &val)
I_DriverContext * GetDriverContext(const string &driver_name, string *err_msg=0, const map< string, string > *attr=0)
virtual bool HandleIt(CDB_Exception *ex)
Handle the exceptions resulting from a native API call, one-by-one.
virtual CDB_Result * Result()
Get result set.
virtual bool Send()
Send command to the server.
virtual CDB_LangCmd * LangCmd(const string &lang_query)
Make language command.
virtual bool HasMoreResults() const
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
double f(double x_, const double &y_)
static const char table_name[]