Linux下连接Sql Server
来源:互联网 发布:seo建站标准 编辑:程序博客网 时间:2024/06/05 15:53
首先,俺安装了
freetds-bin【FreeTDS command-line utilities】
freetds-common【configuration files for FreeTDS SQL clientlibraries】
freetds-dev【MS SQL and Sybase client library (static libs andheaders)】
这三样东西,都是用apt-get安装的。
host = 192.168.0.2【SQL Server所在的IP】 port = 1433【或者自己设置的SQL Server端口】 tds version = 8.0【打开SQLServer查看版本号,这个和那个对应】
安装好了之后,首先去修改 Freetds 的配置文件,如果不知道在哪,就用 find / -name freetds查找相关文件夹,在我的机器上查找到了两处:
/usr/share/freetds
/etc/freetds
然后我修改了 /etc/freetds 文件夹中的 freetds.conf。
用 vim 打开,在下面加上:
[localhost]【下面这个配置的名字】
这时候,就已经能够在命令行下直接调用了,命令是这样的:
localhost:/etc/freetds# tsql -S localhost【你配置文件里取的名字】 -U【数据库登录用户】 -P 【登录密码】
命令行显示:【1>】就对了,可以在后面输入SQL语句,回车是换行,想要执行,则输入【go】之后回车。
下面是简单的C代码示例:
- #include <stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #include<unistd.h>
-
- #include <sybfront.h>//freetds头文件
- #include <sybdb.h>//freetds
-
-
- int
main( void) - {
-
char szUsername[32]= "sa"; -
char szPassword[32]= "zkl"; -
char szDBName[32]= "test";//数据库名 -
char szServer[32]= "192.168.232.133:1433";//数据库服务器:端口 -
-
//初始化db-library -
dbinit(); -
-
//连接数据库 -
LOGINREC*loginrec = dblogin(); -
DBSETLUSER(loginrec,szUsername); -
DBSETLPWD(loginrec, szPassword); -
DBPROCESS*dbprocess = dbopen(loginrec, szServer);//连接数据库 -
if(dbprocess== FAIL) -
{ -
printf("Conectto MS SQL SERVER fail, exit!\n"); -
return -1; -
} -
printf("Connectto MS SQL SERVER success!\n"); -
-
if(dbuse(dbprocess,szDBName) == FAIL) -
printf("Opendatabase failed!\n"); -
else -
printf("Opendatabase success!\n"); -
-
//查询数据库 -
printf("[查询数据库表]\n"); -
dbcmd(dbprocess, "selectStuID, Name, Age from StuInfo"); -
if(dbsqlexec(dbprocess)== FAIL) -
{ -
printf("Querytable 'StuInfo' error.\n"); -
return -1; -
} -
-
DBINTresult_code; -
char szStuID[20]={}; -
char szName[80]={}; -
char szAge[10]={}; -
int rows= 0; -
while ((result_code= dbresults(dbprocess)) !=NO_MORE_RESULTS){ -
if (result_code== SUCCEED){ -
dbbind(dbprocess, 1, CHARBIND, (DBINT)0, (BYTE*)szStuID); -
dbbind(dbprocess, 2, CHARBIND, (DBCHAR)0, (BYTE*)szName); -
dbbind(dbprocess, 3, CHARBIND, (DBCHAR)0, (BYTE*)szAge); -
printf("StuID\tName\tAge\n",szStuID); -
while (dbnextrow(dbprocess)!=NO_MORE_ROWS){ -
printf("%s\t",szStuID); -
printf("%s\t",szName); -
printf("%s\n",szAge); -
} -
} -
} -
-
printf("[插入数据到数据库表]\n"); -
dbcmd(dbprocess, "insertinto StuInfo(StuID, Name, Age)values(888,'James',28)"); -
if(dbsqlexec(dbprocess)== FAIL) -
{ -
printf("insertinto table 'StuInfo' error.\n"); -
return -1; -
} -
printf("insertinto table 'StuInfo' success.\n"); -
-
printf("[删除数据库表中的记录]\n"); -
dbcmd(dbprocess, "deletefrom StuInfo where StuID=888"); -
if(dbsqlexec(dbprocess)== FAIL) -
{ -
printf("deletefrom table 'StuInfo' error.\n"); -
return -1; -
} -
printf("deletefrom table 'StuInfo' success.\n"); -
-
//关闭数据库连接 -
dbclose(dbprocess); -
-
return 0; - }
代码写完之后,编译的时候需要链接正确才能通过,整句话是这样的:
gcc -o dbTest dbTest.c -lrt/usr/lib/libsybdb.a 【一定要加入
然后运行程序,看看是不是成功了。
阅读全文
0 0
- Linux下连接Sql Server
- Linux下通过ODBC连接SQL Server
- 在linux下连接MS SQL Server
- linux下freetds+unixodbc 连接sql server
- java怎么连接sql server 2005
- JDBC 连接SQL Server报…
- Linux下使用PHP连接SQL Server 2005
- Linux下安装SQL Server 2016(连接篇SQL Server on linux)
- SQL Server 2005 不允许远程连接解…
- SQL Server连接中的四个最常…
- VS连接Sql Server数据库找不到服务…
- Linux 下用eclipse 连接hadoop
- sql server 作业题
- vs2005下怎么连接sql server 2000
- Windows下C++连接SQL Server数据库
- windows下NodeJs连接Sql Server数据库
- Windows下python3 连接SQL Server
- SQL Server 2008 …
- 一致性 hash 算法(转载)
- VS2008部分编译错误
- Vive手柄按钮
- 【Linux】fg、bg让你的进程在前后…
- g++编译与调试(纯新手向)
- Linux下连接Sql Server
- linux epoll事件模型详解(转载)
- 微信小程序实现循环列表中加样式
- java 守护线程
- 跟我一起写 Makefile(转载)
- 当鼠标放在div上时改变背景颜色
- ssh远程文件传输命令scp
- 无法解析的外部符号 _pcap_fr…
- WMware中CentOS中的网络设置(静态IP设置)