23 #ifdef TDS_STATIC_CAST
39 static const char *
PWD =
"../../../PWD";
48 #if defined(__MINGW32__) || defined(_MSC_VER)
50 tds_dirname(
char* path)
54 for (p = path + strlen(path); --p > path && (*p ==
'/' || *p ==
'\\');)
57 p = strrchr(path,
'/');
60 p2 = strrchr(p,
'\\');
66 #define dirname tds_dirname
85 s1 = getenv(
"TDSPWDFILE");
91 fprintf(stderr,
"Can not open PWD file \"%s\"\n\n",
PWD);
95 while (fgets(line, 512,
in)) {
96 s1 = strtok(line,
"=");
97 s2 = strtok(
NULL,
"\n");
103 }
else if (!
strcmp(s1,
"SRV")) {
105 }
else if (!
strcmp(s1,
"PWD")) {
107 }
else if (!
strcmp(s1,
"DB")) {
121 #if !defined(__MINGW32__) && !defined(_MSC_VER)
126 DIRNAME = dirname((
char *)argv[0]);
128 #if !defined(__MINGW32__) && !defined(_MSC_VER)
130 while ((ch =
getopt(argc, argv,
"U:P:S:D:f:m:v")) != -1) {
154 fprintf(stderr,
"usage: %s [-v] [-f PWD]\n"
155 " [-U username] [-P password]\n"
156 " [-S servername] [-D database]\n"
185 fprintf(stderr,
"read_login_info() failed!\n");
200 fprintf(stderr,
"read_login_info() failed!\n");
212 #ifdef TDS_STATIC_CAST
219 fprintf(stderr,
"Context Alloc failed!\n");
224 #ifdef TDS_STATIC_CAST
236 fprintf(stderr,
"Library Init failed!\n");
242 fprintf(stderr,
"ct_callback() failed\n");
246 fprintf(stderr,
"ct_callback() failed\n");
252 fprintf(stderr,
"Connect Alloc failed!\n");
259 fprintf(stderr,
"ct_con_props() SET USERNAME failed!\n");
266 fprintf(stderr,
"ct_con_props() SET PASSWORD failed!\n");
276 fprintf(stderr,
"Connection failed!\n");
287 fprintf(stderr,
"Command Alloc failed!\n");
296 strcpy(
query,
"use ");
315 fprintf(stderr,
"ct_cancel() failed!\n");
341 fprintf(stderr,
"ct_command() failed\n");
346 fprintf(stderr,
"ct_send() failed\n");
350 switch ((
int) result_type) {
356 fprintf(stderr,
"ct_results() result_type CS_CMD_FAIL.\n");
360 fprintf(stderr,
"ct_results() unexpected result_type.\n");
364 switch ((
int) results_ret) {
368 fprintf(stderr,
"ct_results() failed.\n");
372 fprintf(stderr,
"ct_results() unexpected return.\n");
383 fprintf(stderr,
"\nCS-Library Message:\n");
384 fprintf(stderr,
"number %d layer %d origin %d severity %d number %d\n",
388 fprintf(stderr,
"msgstring: %s\n", errmsg->
msgstring);
389 fprintf(stderr,
"osstring: %s\n", (errmsg->
osstringlen > 0)
400 fprintf(stderr,
"\nOpen Client Message:\n");
401 fprintf(stderr,
"number %d layer %d origin %d severity %d number %d\n",
405 fprintf(stderr,
"msgstring: %s\n", errmsg->
msgstring);
406 fprintf(stderr,
"osstring: %s\n", (errmsg->
osstringlen > 0)
417 fprintf(stderr,
"%s\n", srvmsg->
text);
421 fprintf(stderr,
"%s Message %d severity %d state %d line %d:\n",
425 fprintf(stderr,
"proc %s: ", srvmsg->
proc);
426 fprintf(stderr,
"\t\"%s\"\n", srvmsg->
text);
436 #define S(s) case s: return #s;
449 sprintf(
str,
"?? (%d)", (
int) ret);
CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT **ctx)
CS_RETCODE cs_ctx_drop(CS_CONTEXT *ctx)
#define CS_COMPUTE_RESULT
static CS_CONNECTION * conn
CS_INT cslibmsg_cb(CS_CONTEXT *connection, CS_CLIENTMSG *errmsg)
CS_RETCODE try_ctlogin(CS_CONTEXT **ctx, CS_CONNECTION **conn, CS_COMMAND **cmd, int verbose)
static const char * BASENAME
static CS_RETCODE continue_logging_in(CS_CONTEXT **ctx, CS_CONNECTION **conn, CS_COMMAND **cmd, int verbose)
CS_RETCODE try_ctlogin_with_options(int argc, char **argv, CS_CONTEXT **ctx, CS_CONNECTION **conn, CS_COMMAND **cmd, int verbose)
static CS_RETCODE establish_login(int argc, char **argv)
CS_RETCODE run_command(CS_COMMAND *cmd, const char *sql)
const char * res_type_str(CS_RETCODE ret)
CS_RETCODE clientmsg_cb(CS_CONTEXT *context, CS_CONNECTION *connection, CS_CLIENTMSG *errmsg)
CS_RETCODE servermsg_cb(CS_CONTEXT *context, CS_CONNECTION *connection, CS_SERVERMSG *srvmsg)
CS_RETCODE try_ctlogout(CS_CONTEXT *ctx, CS_CONNECTION *conn, CS_COMMAND *cmd, int verbose)
CS_RETCODE read_login_info(void)
CS_RETCODE ct_command(CS_COMMAND *cmd, CS_INT type, const CS_VOID *buffer, CS_INT buflen, CS_INT option)
CS_RETCODE ct_connect(CS_CONNECTION *con, CS_CHAR *servername, CS_INT snamelen)
CS_RETCODE ct_results(CS_COMMAND *cmd, CS_INT *result_type)
CS_RETCODE ct_callback(CS_CONTEXT *ctx, CS_CONNECTION *con, CS_INT action, CS_INT type, CS_VOID *func)
CS_RETCODE ct_cmd_drop(CS_COMMAND *cmd)
CS_RETCODE ct_cmd_alloc(CS_CONNECTION *con, CS_COMMAND **cmd)
CS_RETCODE ct_con_alloc(CS_CONTEXT *ctx, CS_CONNECTION **con)
CS_RETCODE ct_con_drop(CS_CONNECTION *con)
CS_RETCODE ct_close(CS_CONNECTION *con, CS_INT option)
CS_RETCODE ct_send(CS_COMMAND *cmd)
CS_RETCODE ct_cancel(CS_CONNECTION *conn, CS_COMMAND *cmd, CS_INT type)
CS_RETCODE ct_con_props(CS_CONNECTION *con, CS_INT action, CS_INT property, CS_VOID *buffer, CS_INT buflen, CS_INT *out_len)
CS_RETCODE ct_init(CS_CONTEXT *ctx, CS_INT version)
CS_RETCODE ct_exit(CS_CONTEXT *ctx, CS_INT unused)
if(yy_accept[yy_current_state])
int strcmp(const char *str1, const char *str2)
std::istream & in(std::istream &in_, double &x_)
static const char * str(char *buf, int n)