嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(三)
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,阅读此文章前请先完成<嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(一) >与<嵌入式PowerPC通过unixODBC/freetds访问SQL Serve
千家信息网最后更新 2025年11月07日嵌入式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安全错误
数据库的锁怎样保障安全
光遇晚上服务器
文献数据库怎么搭建
dns服务器是什么系统
免流服务器被攻击
东城ibm服务器回收
广东服务器电源定制公司
姜堰区多功能网络技术大概费用
大富科技 移动互联网
数据库vip切换是什么
网络技术iot什么意思
网络安全的新股
校园网络安全的预防
天龙八部凤凰山服务器价格
软件开发人员讨厌写周报吗
一个app可以有两个数据库吗
校园网的网络安全
网络安全培养什么人才
威联通网络技术有限公司
软件开发是什么税率
邮件服务器如何填
免流服务器被攻击
服务器玩英雄联盟为什么会卡
列族数据库命名空间
关于网络安全的手抄报教学视频
rac 删除数据库
中华网络安全法哪一年
计算机网络安全 pdf
电子商务的网络安全问题有哪些
执行数据库查询异常
甘肃专业网络技术服务工程