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[])
79 bool preallocated =
false;
84 <<
" -K<blob_id> [-d<driver_name>] [-S<server_name>]"
85 <<
" [-U<user_name>] [-P<password>] [-L<image size>] [-Z<compress_method>]"
86 <<
" [-T<table_name>] [-H<table_hint>] [-a]"
91 const char* p=
getParam(
'K', argc, argv);
93 cerr << argv[0] <<
"Blob ID is missing" << endl;
100 p= getenv(
"SQL_SERVER");
102 server_name= p? p :
"MSDEV1";
108 p= getenv(
"DBAPI_DRIVER");
110 driver_name= (server_name.find(
"MS") !=
NPOS)?
"ftds" :
"ctlib";
117 p= getenv(
"SQL_USER");
119 user_name= p? p :
"anyone";
123 p= getenv(
"SQL_PASSWD");
125 passwd= p? p :
"allowed";
130 if(*p ==
'z') cm=
eZLib;
135 if(p) imagesize= atoi(p);
139 p= getenv(
"DATA_TABLE");
146 getParam(
'a', argc, argv, &preallocated);
151 string *blob_column =
NULL;
159 unique_ptr<I_DriverContext> my_context(drv_mgr.
GetDriverContext(driver_name,
162 cerr <<
"Cannot load a driver " << driver_name <<
" ["
163 << err_msg <<
"] " << endl;
167 CDB_Connection* con= my_context->Connect(server_name, user_name, passwd, 0,
true);
189 blob_column=
new string[
n];
191 for(
unsigned int j= 0; j <
n; j++) {
192 switch (
r->ItemDataType(j)) {
196 key_col_name=
r->ItemName(j);
203 num_col_name=
r->ItemName(j);
212 blob_column[k++]=
r->ItemName(j);
227 blob_column,
flags, table_hint);
229 CBlobLoader bload(my_context.get(), server_name, user_name, passwd, &sbs);
232 bload.
Load(cin, cm, imagesize);
int main(int argc, char *argv[])
static char * getParam(char tag, int argc, char *argv[], bool *flag=0)
bool Load(istream &s, ECompressMethod cm=eNone, size_t image_limit=0, bool log_it=false)
static const TFlags kDefaults
void SetKey(const string &key)
@ fIsText
(N)TEXT or (N)VARCHAR(MAX)
@ fPreallocated
Don't create rows or clean up excess rows.
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_)
static const char table_name[]