Linux C语言连接 sqlserver数据库
记录一下Linux下使用C语言连接sqlserver的方法。
连接前需要安装freetds。
参考:
http://www.cnblogs.com/helloworldtoyou/p/6910075.html
http://blog.csdn.net/neighbor1000/article/details/8824084
http://blog.csdn.net/pinkbean/article/details/64439759
这个是从参考链接中的提取代码。分析一下,写上注释。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sybfront.h>
#include<sybdb.h>
int main(void)
{
char szUsername[32]= "Tony";
char szPassword[32]= "tony";
char szDBName[32]= "gpio";
char szServer[32]= "192.168.1.221:1433"; //服务器ip地址和端口号
//初始化db-library
dbinit();
//连接数据库
LOGINREC *loginrec=dblogin();
// 设置登录的用户名
DBSETLUSER(loginrec,szUsername);
// 设置登录密码
DBSETLPWD(loginrec,szPassword);
// 连接sqlserver服务器地址和端口号,这里才是连接
DBPROCESS *dbprocess=dbopen(loginrec,szServer);
if(dbprocess==FAIL){
printf("Connect MSSQLSERVER fail\n");
return 0;
}else{
printf("Connect MSSQLSERVER success\n");
}
// 连接数据库
if(dbuse(dbprocess,szDBName)==FAIL){
printf("Open data basename fail\n");
}else{
printf("Open data basename success\n");
}
// 查询数据库中表中的内容
dbcmd(dbprocess,"select * from real_date_log"); //查询数据表中的内容,更具实际情况更改数据表名称
// 执行命令
if(dbsqlexec(dbprocess)==FAIL){
printf("Query table error\n");
}
else
printf("Query table success\n");
DBINT result_code;
char szID[1024];
char szBeginTime[1024];
char szDescription[1024];
// 查看命令执行的结果。
while((result_code=dbresults(dbprocess))!=NO_MORE_RESULTS)
{
if(result_code==SUCCEED){
// 查询第1列
dbbind(dbprocess,1,CHARBIND,(DBINT)0,(BYTE*)szID);
// 查询第2列
dbbind(dbprocess,2,CHARBIND,(DBCHAR)0,(BYTE*)szBeginTime);
// 查询第3列
dbbind(dbprocess,3,CHARBIND,(DBCHAR)0,(BYTE*)szDescription);
// 跳到下一行
while(dbnextrow(dbprocess)!=NO_MORE_ROWS){
// 打印本行的数据
printf("ID=%s\n",szID);
printf("szAid=%s\n",szBeginTime);
printf("szBeginTime=%s\n",szDescription);
}
}
}
//关闭数据库连接
dbclose(dbprocess);
return 0;
}
编译
gcc -o testsybase testsybase.c -L /usr/local/freetds7.0/lib/ -lsybdb -I /usr/local/freetds7.0/include/
执行
export LD_LIBRARY_PATH=/usr/local/freetds7.0/lib/
./testsybase
Tony Liu
2017-5-26, Shenzhen
Linux C语言连接 sqlserver数据库的更多相关文章
- C语言连接SQLSERVER数据库
第一步:配置ODBC.在配置ODBC时有用户DSN.系统DSN.和文件DSN三种方法,为了稳妥起见,采用系统DSN. DSN的名字叫LocalServer,帐号:sa,密码123456 第二步:打开V ...
- Linux centos 7/ubantu下: 用 C 语言连接 MySQL数据库
前言:最近用IPC.socket做ATM.聊天项目,考虑到需要用到数据库,所以总结一下centos.ubantu环境下怎么用C语言操作数据库,例如常见的增删改查等! 一.Centos环境安装mysql ...
- C语言与sqlserver数据库
原文:C语言与sqlserver数据库 1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作. step1:启动SQLSERVER服务,例 ...
- 将.Net Core发布至Docker,并连接 Redis、上传文件到本机、连接sqlserver数据库
此片文章目标是将 .Net Core 发布到 Docker 上,并且连接到在 Docker上的 Redis .上传文件到本机文件夹和连接 sqlserver 数据库. 创建项目 创建项目就不用说了,我 ...
- jsp连接sqlServer数据库教程
一.首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar 下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 下载地址:点击进入 开发IDE工 ...
- 使用thinkphp连接sqlserver数据库时提示“系统不支持:sqlsrv”
习惯了使用php跟mysql组合,现在接到项目需要调用客户线下的系统软件的数据,具了解,这个软件的数据库是用sqlserver数据库也就是常说的mssql数据库了. 那么我现在需要用PHP连接sqls ...
- C语言连接MySql数据库
C语言连接MySql数据库(CodeBlocks) 操作系统:Windows7(32位)编译软件:Code::Blocks 10.05数 据 库:mysql-5.1.62-win32 数据库内的数据: ...
- asp.net 连接sqlserver数据库
在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面 ...
- SQLServer-----使用jTDS连接SQLServer数据库
一.jTDS一个简短的引论 jTDS100%纯Java实现的JDBC3.0驱动,它用于连接 Microsoft SQL Server(6.5.7.2000,2005,2008 和 2012)和Syba ...
随机推荐
- 发布Web应用程序时发生的“xx.aspx.cs文件不存在”错误
(注意:这里说的Web应用程序并不是Web网站) 在VS里调试.IIS里浏览含.CS源码的项目都是没有问题的.但是发布后,所有的.CS文件都被编译到bin文件夹里去了.在IIS里浏览,发生“分析器错误 ...
- tmux使用及配置
这篇博客跟以前的vim配置一样,都是为了以后本人自己方便备份的tmux配置文件 0.安装 centos默认自带的软件是screen,没有带tmux,所以需要源代码安装 get clone http:/ ...
- 注册vue组件的几种方式
1,全局注册(这种方式注册组件必须在vue实例化之前声明) Vue.component('tag-name',{}) 2,局部注册 var Child = { template: '<div&g ...
- what-is-a-closure
https://stackoverflow.com/questions/36636/what-is-a-closure https://www.quora.com/What-are-upvalues- ...
- numpy数组-截取部分
import numpy as np a = np.array([1,2,3,4,5]) slice = a[:3] slice[0] = 100 print(a) # 结果 [100,2,3,4,5 ...
- 京东轮播图片的静态页面CSS3
效果图: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- python(48):re.split 多分隔符
问题描述: 使用多个界定符分割字符串 问题 你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的. 解决方案 string 对象的 split() 方法只适应于非常简单的字符串分 ...
- tensorboard简单使用
代码写的再好,没有图别人也不知道好在哪. 我们在使用tensorflow的时候,使用tensorboard可以直观的看到我们的网络结构,甚至它可以计算卷积和池化的维度(我不知道是不是因为我已经运行了一 ...
- csu1356 :判断一个环是否为奇数环
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1356 题意:给出一个起始点,一些边,有人从这个起始点开始随意走,问在某一个时候,它是否可以处于任意 ...
- jQuery 学习笔记2 点击时弹出一个对话框
上次学习的是页面加载完成后弹出一个警告框,这里我们改为当用户点击后弹出一个警告框. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...