嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(三)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,阅读此文章前请先完成<嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(一) >与<嵌入式PowerPC通过unixODBC/freetds访问SQL Serve
千家信息网最后更新 2026年11月01日嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(三)
阅读此文章前请先完成<嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(一) >与<嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(二) >的阅读, 理解unixODBC/freetds的编译与部署工作,除此之外,下面代码中所用到的部分数据来自<嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(二) >文章.
如需对代码部分进行验证,仅对部分内容(数据源、用户名、密码、insert语句等)进行修订即可。
1, 测试源码
*#include #include #include #include #include SQLHDBC handlestmt; SQLHENV handleenv; SQLHDBC handlehdbc; bool ConnectDB() { long nRetState = 0; nRetState=SQLAllocHandle(SQLHANDLEENV,SQLNULLHANDLE,&handleenv); if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO)) return false; nRetState=SQLSetEnvAttr(handleenv, SQLATTRODBCVERSION, (void)SQLOVODBC3, 0); if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO)) return false; nRetState = SQLAllocHandle(SQLHANDLEDBC, handleenv, &handlehdbc); if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO)) return false; SQLSetConnectAttr(handlehdbc, SQLLOGINTIMEOUT, (SQLPOINTER )5, 0); nRetState = SQLConnect(handlehdbc, (SQLCHAR) "odbc", SQLNTS, // 数据源 (SQLCHAR) "sa", SQLNTS, // 用户名 (SQLCHAR) "root", SQLNTS); // 密码 if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO)) return false; printf("DB Connected !\n"); return true; } bool InsertDB(SQLCHAR szSqlCmd) { long nRetState = 0; nRetState=SQLAllocHandle(SQLHANDLESTMT, handlehdbc, &handlestmt); if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO)) return false; nRetState=SQLExecDirect(handlestmt,szSqlCmd,SQLNTS); if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO)) return false; printf("InsertDB Success\n"); return true; } bool CloseDB() { SQLFreeHandle(SQLHANDLESTMT,handlestmt); SQLDisconnect(handlehdbc); SQLFreeHandle(SQLHANDLEDBC,handlehdbc); SQLFreeHandle(SQLHANDLEENV, handleenv); printf("Excute Finished !\n"); return true; } int main(int argc,char argv[]) { char pSQLCommond = "insert into ReportServer.dbo.userTmp(ID) values(99)"; SQLCHAR pSQLCommondExe = (SQLCHAR)pSQLCommond; if(ConnectDB()){ InsertDB(pSQLCommondExe); CloseDB(); } return(0); } *
2, 交叉编译
注意:交叉编译许链接odbc动态库。
3, 部署
将编译好的文件拷贝至powerpc设备中任何位置, 使用chmod 755 * 给编译好的文件添加执行权限,并将odbc库链接至/usr/lib下。
4, 测试验证
收到如下执行结果,表示数据库操作成功,注意:应在User用户下进行执行
编译
数据
用户
部分
代码
密码
数据源
文件
用户名
链接
交叉
测试
验证
数据库
成功
位置
内容
动态
拷贝
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网科技股
互联网科技公司排名
疫情对互联网科技公司影响
科技类互联网
上海互联网科技有限公司
互联网科技公司怎么样
杭州互联网科技公司
掌上梦互联网科技
互联网科技公司介绍
人人互联网科技是培训
搜狐科技互联网
健康食品互联网创新科技园项目
天津腾达互联网科技有限公司
佛山市拉法互联网科技有限公司
威龙国际互联网科技公司
江苏互联网智能科技产品出厂价
互联网科技新闻
深圳互联网科技园地址
广东猫王互联网科技有限公司电话
互联网佳科技有限公司
互联网 卓越科技
互联网 的科技创新
互联网科技革命
北京华百购互联网科技有限公司
互联网金融中的现代科技
互联网科技革命什么开始
浙南科技城互联网大厦招聘
云南互联网科技学费
长沙易易互联网科技有限公司