嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(三)
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,阅读此文章前请先完成<嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(一) >与<嵌入式PowerPC通过unixODBC/freetds访问SQL Serve
千家信息网最后更新 2025年02月03日嵌入式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安全错误
数据库的锁怎样保障安全
网络安全班会黑板布置
云南警官学院信息网络安全学院
云服务器不用网站可以吗
怎样学好数据库这门课
党政机关网络安全问题
电力监控系统网络安全资料
网络安全和信息化是指
软件开发涉及文档
服务器网络安全检测内容
阿里 服务器
网络安全公司战略定位
上海网络安全员工资
大学网络技术基础教程实验
将数据库搭建在服务器上
公司进销存软件开发
徐州管理软件开发
曲靖玉溪互联网科技
网络安全黑板报获奖作品
安徽名优网络技术咨询哪家好
网络安全公司属于企事业单位吗
分析分析器与数据库的关系
客户达登入服务器连接失败
服务器 文件丢失
罗布乐思服务器攻略
通信软件开发招聘
软件开发流程管理系统规范
it软件开发演讲稿
BIGD数据库
应用商店软件开发
网络安全事关国家