如何使用linux连接外部windows上的数据库记录

1 去freetds官网下载最新版本的freetds,注意版本号,一般2008版本的就写7.3,2014或者2012写7.4,再往前的数据库就不好使了,具体安装步骤不再说明,然后说一下链接代码:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<unistd.h>

#include<sybfront.h>                   //frertds中的文件,找不到则路径寻找/usr/...

#include<sybdb.h>                      //freetds的文件,如上





int main(void)

{    char szUsername[32]="sa";          //用户名

     char szPassword[32]="123456789";   //去sql server 2012中自己填写

     char szDBName[32]="test";               //叫text的数据库名字

     char szServer[32]=" 192.168.4.40:1433"; //数据库的服务器端口

    

    

     dbinit();                        //初始化

    

     //连接模块

     LOGINREC *loginrec=dblogin();      //连接    其中Dblogin是根据用户名和密码连接数据库

     DBSETLUSER(loginrec,szUsername);    

     DBSETLPWD(loginrec,szPassword);

     DBPROCESS *dbprocess=dbopen(loginrec,szServer); //打开数据库

  

  

   if(dbprocess==FAIL)           //测试是否连接成功

     {

    

     printf("connect SQL Server fail\n"); 

     return -1;

     }

     else

     printf("connect success\n");





   

    //打开模块

   

    if(dbuse(dbprocess,szDBName)==FAIL)  //是否能够打开数据库

     

      printf("open database fail\n");

   

    else

       printf("open database success\n");

      

      

      

       //查询模块

       printf("查询数据库表");

       dbcmd(dbprocess,"select StuID,Name,Age from Stulnfo");//查询表格并测试是否成功

      

       if(dbsqlexec(dbprocess)==FAIL)

       {

      

       printf("chaxun table error")

      

       return -1;

      

       }

      

      

      

      

       DBINT result_code;

       char szStuID[20]={};

       char szName[80]={};

       char szAge[10]={};

       int rows=0;

      

       while((result_code=dbresults(dprocess))!=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\Name\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,"insert into Stulnfo(StuID,Name,Age)values(888,'heheda',24)");

     if(dbsqlexec(dbprocess)==FAIL)            //判定插入的数据是否成功

     {

     printf("insert into table'Stulnfo'error.\n");

     return -1;

     }                  

       else

       print("insert into table 'Stulnfo' success.\n");

      

      

      

         //删除模块

     printf("删除记录\n");

      dbcmd(dbprocess,"dele form Stulnfo where StuID=888");

     if(dbsqlexec(dbprocess)==FAIL)

     {   

    

     printf("delete 'Stulnfo' error.\n");

     return -1;

     }

     else

     printf("delete 'Stulnfo' success.\n");

    

    

       //关闭

     dbclose(dbprocess);

     return 0;

    

      }

    

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值