如何git log查看修改内容 freetds.log

Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) - CSDN博客
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
(1)安装freeTDS
FreeTDS为Linux系统提供了TDS协议的开源客户端。由于MS SQL和Sybase使用的恰是TDS协议,所以在Linux中可以用FreeTDS连接MS SQL。
官网:http://www.freetds.org
下载:wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
[root@vm01 ~]# tar -zxvf freetds-stable.tgz
[root@vm01 ~]# cd freetds-0.91
[root@vm01 freetds-0.91]# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
[root@vm01 freetds-0.91]# make
[root@vm01 freetds-0.91]# make install
修改环境变量:
FREETDS_HOME=/usr/local/freetds
export PATH=$FREETDS_HOME/bin:$PATH
库文件加载:
[root@vm01 freetds-0.91]# vim /etc/ld.so.conf.d/freetds.conf
/usr/local/freetds/lib
[root@vm01 freetds-0.91]# ldconfig
(2) 修改配置文件,连接数据库
(i) 添加数据源
[root@vm01 test]# vim /usr/local/freetds/etc/freetds.conf&
&&&&&&& host = 192.168.232.133
&&&&&&& port = 1433
&&&&&&& tds version=8.0
#client charset = ISO-8859-1
完成后,使用如下命令即可连接到 SQL Server 2005 .
[root@vm01 test]# tsql -S SQL2005 -U sa -P zkl
locale is &zh_CN.GB18030&
locale charset is &GB18030&
using default charset &GB18030&
1& use test& [使用test数据库]
1& select * from StuInfo [查询表信息]
StuID Name
(3 rows affected)
(ii) 修改协议版本以正常连接SQL Server 2005
修改 freetds 配置文件
[root@vm01 test]# vim /usr/local/freetds/etc/freetds.conf&
&&&&&&& # TDS protocol version
#;&&&&& tds version = 4.2
&&&&&&&& tds version=8.0&& (这个前面不能有逗号)
连接 SQL SERVER 2005 需要使用的协议版本为 8.0,而使用 4.2 时,连接将会失败。使用 tsql 命令连接时,如果不像步骤(2)中那样配置数据源,则同样需要修改协议,然后才能使用如下命令正常连接数据库:
[root@vm01 test]# tsql -H 192.168.232.133 -p 1433 -U sa -P zkl
注意:第一个p为小写,后面的P是大写。
(3) 使用C++代码连接数据库
首先,确保协议版本是 8.0,然后编译以下C代码,测试与数据库的连接。
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
gcc test.c -o test -L/usr/local/freetds/lib -lsybdb -I/usr/local/freetds/include
-----------------------------------------------
本文已收录于以下专栏:
相关文章推荐
本人Linux版本: RHEL5.8 (32位)
源码安装包(设计开发使用Freetds建议选择源码编译、安装生成与自己系统适配的相关库文件):
Freetds源码安装包地址
编码使用相关参考:...
Linux平台 PHP和Laravel连接SQL Server
golang连接微软sql server数据库,支持windows身份验证和SA登录
FreeTDS的使用及移植
        前面已经介绍了FreeTDS的基本功能,本篇就来详细介绍FreeTDS的使用以及移植工作。FreeTDS使用是非常简单的,难点是在其移植方面,琢磨了两天...
Ubuntu下安装FreeTDS访问Sysbase和Microsoft SQL Server 数据库p { margin-bottom: 0.21 }在
sql server 2008配置远程连接方法,参考百度经验:/article/6c67b1d6ca06f0.html
最近要在linux下用c++连接windows下的SQL Server 2005,所以只好用freeTDS了
       环境:  系统ubuntu9.04     kernel 2.6...
# 下载 freetds,可下载最新 ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
$ wget ftp://ftp....
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博客访问: 177314
博文数量: 50
博客积分: 1530
博客等级: 上尉
技术积分: 510
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
#include #include #include #include #include #include #include static void usage(){&&& printf("Usage : testdb [-s|-u|-p|-d|-e|-f|-h]\n"&&&&&& "\t -s&& MSSQLServer server name \n"&&&&&& "\t -u&& login user name\n"&&&&&& "\t -p&& login user password\n"&&&&&& "\t -d&& default database\n"&&&&&& "\t -e&& enable SSL [-e yes]\n"&&&&&& "\t -f&& test db connection with a configuration file \n"&&&&&& "\t -h&& show help info\n");&&&& exit( 0 );}struct {&&& char *appname, *servername, *dbname, *username, *password, *} options = {0,0,0,0,0,0};int msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate, int severity,&&& char *msgtext, char *srvname, char *procname, int line){&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& enum {changed_database = 5701, changed_language = 5703 };&&& &&& &&& if (msgno == changed_database || msgno == changed_language)&&&&&&& return 0;&&& &&& if (msgno > 0) {&&&&&&& fprintf(stderr, "Msg %ld, Level %d, State %d\n",&&&&&&&&&&&&&&& (long) msgno, severity, msgstate);&&& &&&&&&& if (strlen(srvname) > 0)&&&&&&&&&&& fprintf(stderr, "Server '%s', ", srvname);&&&&&&& if (strlen(procname) > 0)&&&&&&&&&&& fprintf(stderr, "Procedure '%s', ", procname);&&&&&&& if (line > 0)&&&&&&&&&&& fprintf(stderr, "Line %d", line);&&& &&&&&&& fprintf(stderr, "\n\t");&&& }&&& fprintf(stderr, "%s\n", msgtext);&&& &&& if (severity > 10) {&&&&&&&&&&&&&&&&&&&&&&& &&&&&&& fprintf(stderr, "%s: error: severity %d > 10, exiting\n",&&&&&&&&&&& options.appname, severity);&&&&&&& exit(severity);&&& }&&& &&& return 0;&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&& int err_handler(DBPROCESS * dbproc, int severity, int dberr, int oserr,&&& char *dberrstr, char *oserrstr){&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& if (dberr) {&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&& fprintf(stderr, "%s: Msg %d, Level %d\n",&&&&&&&&&&& options.appname, dberr, severity);&&&&&&& fprintf(stderr, "%s\n\n", dberrstr);&&& }&&& else {&&&&&&& fprintf(stderr, "%s: DB-LIBRARY error:\n\t", options.appname);&&&&&&& fprintf(stderr, "%s\n", dberrstr);&&& }&&& &&& return INT_CANCEL;&&&&&&&&&&&&&&&&&&&&&&& }extern char *int main(int argc, char **argv){&&& DBINT&&& char sql_cmd[1024]={0};&&& DBPROCESS *dbproc = NULL;&&& LOGINREC *pdblogin = NULL;&&& char szEnv[1024] = {0};&&&&&& int bFile = 0;&&& if(argc < 4)&&&&&& usage();&& &&& while (( ch = getopt(argc, argv, "u:p:s:d:e:f:h:")) != -1)&&& {&&&&&&& switch(ch)&&&&&&& {&&&&&&& case 's':&&&&&&&&&&& options.servername = strdup(optarg);&&&&&&&&&&&&&&&&&& case 'd':&&&&&&&&&&& options.dbname = strdup(optarg);&&&&&&&&&&&&&&&&&& case 'u':&&&&&&&&&&& options.username = strdup(optarg);&&&&&&&&&&&&&&&&&& case 'p':&&&&&&&&&&& options.password = strdup(optarg);&&&&&&&&&&&&&&&&&& case 'e':&&&&&&&&&&& options.encrypt = strdup(optarg);&&&&&&&&&&&&&&&&&& case 'f':&&&&&&&&&&& sprintf(szEnv, "FREETDSCONF=%s", optarg);&&&&&&&&&&& bFile = 1;&&&&&&&&&&& char *pEnv = strdup(szEnv);&&&&&&&&&&& putenv(pEnv);&&&&&&&&&&&&&&&&&& case 'h':&&&&&&&&&&& usage();&&&&&&& default:&&&&&&&&&&& usage();&&&&&&& }&&& }&&& options.appname = (char*)basename(argv[0]);&&& if (dbinit() == FAIL) {&&&&&&& printf("dbinit() failed\n");&&&&&&& dberrhandle(err_handler);&&&&&&& dbmsghandle(msg_handler);&&&&&&& return -1;&&& }&&& pdblogin = dblogin();&&& if (pdblogin == NULL){&&&&&&& printf("Failed to init dblogin\n");&&&&&&& dberrhandle(err_handler);&&&&&&& dbmsghandle(msg_handler);&&&&&&& return -1;&&& }&&& DBSETLUSER(pdblogin, options.username);&&& DBSETLPWD(pdblogin, options.password);&& &&& if(NULL == options.dbname ) &&& {&&&&&&& options.dbname = "master";&&& }&&& DBSETLAPP(pdblogin, options.dbname);&&&&& &&& if((NULL != options.encrypt) &&& (strcmp(options.encrypt, "yes") == 0))&&& {&&&&&&& DBSETLENCRYPT(pdblogin, TRUE);&&& }&&& if(bFile)&&& {&&&&&&& dbproc = dbopen(pdblogin, "MyMSSQLServer");&&& }&&& else&&& {&&&&&&& dbproc = dbopen(pdblogin, options.servername);&&& }&&& if (dbproc == NULL) {&&&&&&& printf("Failed to dbopen \n");&&&&&&& dberrhandle(err_handler);&&&&&&& dbmsghandle(msg_handler);&&&&&&& return& -1;&&& }&&& if ((result = dbuse(dbproc, "master")) == FAIL) {&&&&&&& printf("Unable to use to database master\n");&&&&&&& dberrhandle(err_handler);&&&&&&& dbmsghandle(msg_handler);&&&&&&& return -1;&&& }&&& sprintf(sql_cmd,"select db_name()");&&& dbcmd(dbproc, sql_cmd);&&& if (FAIL == dbsqlexec (dbproc))&&& {&&&&&&& printf("Unable to set exec sql command %s\n",sql_cmd);&&&&&&& dberrhandle(err_handler);&&&&&&& dbmsghandle(msg_handler);&&&&&&& return -1;&&& }&&& char szResult[1024];&&& memset(szResult, 0, sizeof(szResult));&&& while((result = dbresults(dbproc)) !=& NO_MORE_RESULTS)&&& {&&&&&&& if(result = SUCCEED)&&&&&&& {&&&&&&&&&&& dbbind(dbproc, 1, CHARBIND, (DBCHAR)0, (BYTE *)szResult);&&&&&&&&&&& while(dbnextrow(dbproc) != NO_MORE_ROWS)&&&&&&&&&&& {&&&&&&&&&&&&&&& printf("szResult = [%s]\n", szResult);&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&& }&&&&&&& else&&&&&&& {&&&&&&&&&&& printf("dbresult failed, code:%d\n", result);&&&&&&&&&&& dberrhandle(err_handler);&&&&&&&&&&& dbmsghandle(msg_handler);&&&&&&&&&&&&&&&&&& }&&& }&&& if (dbproc){&&&&&&& dbclose (dbproc);&&&&&&& dbproc = NULL;&&& }&&& if (pdblogin){&&&&&&& dbloginfree(pdblogin);&&&&&&& pdblogin = NULL;&&& }&&& return 0;}Compile the program by below command:&gcc testdb.c -o testdb -L/usr/lib/ -lsybdb
阅读(887) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
FreeTds和unixODBC的使用
下载积分:100
内容提示:FreeTds和unixODBC的使用
文档格式:PDF|
浏览次数:386|
上传日期: 07:59:03|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 100 积分
&#xe602;下载此文档
该用户还上传了这些文档
FreeTds和unixODBC的使用
关注微信公众号FreeTDS & pymssql 2.2.0.dev documentation

我要回帖

更多关于 svn 修改log message 的文章

 

随机推荐