如何使用linux連線外部windows上的資料庫記錄
阿新 • • 發佈:2019-01-09
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; }