📄 common.c
字号:
#include "common.h"static char software_version[] = "$Id: common.c,v 1.26 2005/04/15 20:30:18 freddy77 Exp $";static void *no_unused_var_warn[] = { software_version, no_unused_var_warn };char USER[512];char SERVER[512];char PASSWORD[512];char DATABASE[512];/* TODO use another default ?? */char CHARSET[512] = "ISO-8859-1";int read_login_info(void);intread_login_info(void){ FILE *in; char line[512]; char *s1, *s2; in = fopen("../../../PWD", "r"); if (!in) { fprintf(stderr, "Can not open PWD file\n\n"); return TDS_FAIL; } while (fgets(line, 512, in)) { s1 = strtok(line, "="); s2 = strtok(NULL, "\n"); if (!s1 || !s2) { continue; } if (!strcmp(s1, "UID")) { strcpy(USER, s2); } else if (!strcmp(s1, "SRV")) { strcpy(SERVER, s2); } else if (!strcmp(s1, "PWD")) { strcpy(PASSWORD, s2); } else if (!strcmp(s1, "DB")) { strcpy(DATABASE, s2); } } fclose(in); return TDS_SUCCEED;}TDSCONTEXT *test_context = NULL;inttry_tds_login(TDSLOGIN ** login, TDSSOCKET ** tds, const char *appname, int verbose){ TDSCONNECTION *connection; if (verbose) { fprintf(stdout, "Entered tds_try_login()\n"); } if (!login) { fprintf(stderr, "Invalid TDSLOGIN**\n"); return TDS_FAIL; } if (!tds) { fprintf(stderr, "Invalid TDSSOCKET**\n"); return TDS_FAIL; } if (verbose) { fprintf(stdout, "Trying read_login_info()\n"); } read_login_info(); if (verbose) { fprintf(stdout, "Setting login parameters\n"); } *login = tds_alloc_login(); if (!*login) { fprintf(stderr, "tds_alloc_login() failed.\n"); return TDS_FAIL; } tds_set_passwd(*login, PASSWORD); tds_set_user(*login, USER); tds_set_app(*login, appname); tds_set_host(*login, "myhost"); tds_set_library(*login, "TDS-Library"); tds_set_server(*login, SERVER); tds_set_client_charset(*login, CHARSET); tds_set_language(*login, "us_english"); if (verbose) { fprintf(stdout, "Connecting to database\n"); } test_context = tds_alloc_context(NULL); *tds = tds_alloc_socket(test_context, 512); tds_set_parent(*tds, NULL); connection = tds_read_config_info(NULL, *login, test_context->locale); if (!connection || tds_connect(*tds, connection) == TDS_FAIL) { if (connection) { tds_free_socket(*tds); *tds = NULL; tds_free_connection(connection); } fprintf(stderr, "tds_connect() failed\n"); return TDS_FAIL; } tds_free_connection(connection); return TDS_SUCCEED;}/* Note that this always suceeds */inttry_tds_logout(TDSLOGIN * login, TDSSOCKET * tds, int verbose){ if (verbose) { fprintf(stdout, "Entered tds_try_logout()\n"); } tds_free_socket(tds); tds_free_login(login); tds_free_context(test_context); test_context = NULL; return TDS_SUCCEED;}/* Run query for which there should be no return results */intrun_query(TDSSOCKET * tds, const char *query){ int rc; int result_type; rc = tds_submit_query(tds, query); if (rc != TDS_SUCCEED) { fprintf(stderr, "tds_submit_query() failed for query '%s'\n", query); return TDS_FAIL; } while ((rc = tds_process_tokens(tds, &result_type, NULL, TDS_TOKEN_RESULTS)) == TDS_SUCCEED) { switch (result_type) { case TDS_DONE_RESULT: case TDS_DONEPROC_RESULT: case TDS_DONEINPROC_RESULT: /* ignore possible spurious result (TDS7+ send it) */ case TDS_STATUS_RESULT: break; default: fprintf(stderr, "Error: query should not return results\n"); return TDS_FAIL; } } if (rc == TDS_FAIL) { fprintf(stderr, "tds_process_tokens() returned TDS_FAIL for '%s'\n", query); return TDS_FAIL; } else if (rc != TDS_NO_MORE_RESULTS) { fprintf(stderr, "tds_process_tokens() unexpected return\n"); return TDS_FAIL; } return TDS_SUCCEED;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -