首页 > 编程知识 正文

乐动大数据,jdbc连接数据库代码

时间:2023-05-06 12:37:02 阅读:138566 作者:3434

C数据库编程概述

C数据库编程ODBC简介

C数据库编程ODBC连接SQL Server数据库

C数据库编程ODBC插入数据

C数据库编程ODBC查询数据

C数据库编程删除ODBC数据

C数据库编程修改ODBC数据

C数据库编程ODBC连接MySQL增删校验数据

C数据库编程MySQL Connecttor C概述

C数据库编程MySQL Connecttor C添加删除检查

文章目录1 .步骤2 .示例代码

1 .分配步骤语句句柄

根据连接句柄分配语句句柄。

//赋值语句句柄SQLHSTMT hStmt=NULL; ret=sqlallochandle (SQL _ handle _ stmt,hDbc,hStmt ); 执行SQL语句执行准备好执行SQ语句的SQLEXecDirect语句。 SQLEXecDirect是提交SQL语句并一次执行的最快方法。

//SQL查询语句sqltcharsql [ ]=_ t (select * from student ); 执行//SQL语句ret=sqlexecdirect(HSTMT,SQL,SQL_NTS ); 列SQLBindcol自动计算//SQL_ntsSQL语句的长度并将结果集绑定到结果集中的列。

//绑定字段SQLLEN len=SQL_NTS; sqlbindcol(hstmt,1,SQL_C_LONG,id,sizeof ),0 ); sqlbindcol(HSTMT,2,/*SQL_C_CHAR*/SQL_C_WCHAR,name,sizeof ),len ); sqlbindcol(hstmt,3,SQL_C_SHORT,age,sizeof ),0 ); 遍历结果集SQLFetch,从结果集中检索下一组数据,并返回所有绑定列中的数据。

//逐行扫描以获取数据ret=SQLfetch(hstmt )的wile(ret )!=SQL_NO_DATA ) { wcout id 't' name 't' age endl; //每次清除上行的旧数据,保证下一次获取的数据为干净的id=0的zeromemory(name,sizeof ) name ); age=0; //获取下一行缓冲区中的数据并输入id、name、ageret=SQLfetch(hstmt ); } 2.示例代码//包含头文件# include windows.h # includesqlext.h # include sqltypes.h # include tchanclude SQLRETURN ret=SQL_ERROR; 分配ODBC环境句柄SQLHENV hEnv=NULL; ret=sqlallochandle (SQL _ handle _ env,SQL_NULL_HANDLE,hEnv ); if(SQL_success==ret ) { wcout _T (环境句柄分配成功! ' ) endl; } else { return -1; 设置ODBC的版本ret=SQLsetenvattr(henv,SQL_ATTR_ODBC_VERSION,) SQL pointer (SQL _ ov _ odbc 3,0 ); //分配数据库连接句柄SQLHDBC hDbc=NULL的ret=sqlallochandle (SQL _ handle _ DBC、hEnv、hDbc ); //DSN显示数据库ret=SQLconnect(HDBC,) SQLTCHAR* ) _t(SQLserverodbc ),SQL_NTS,) SQLTCHAR* ) _t ) sa ' ' ' ) endl; }elseif(ret==SQL_error ) { SQLTCHAR state[128]={ 0 }; SQLTCHAR msg[128]={ 0 }; //错误消息ret=SQLerror(henv,hDbc,NULL,state,NULL,msg,sizeof ),NULL ); wcout state ' ' msg endl; //插入数据//分配语句句柄SQLHSTMT hStmt=NULL; ret=sqlallochandle (SQL _ handle _ stmt,hDbc,hStmt ); //SQL查询语句sqltcharsql [ ]=_ t (select * from student ); 执行//SQL语句ret=sqlexecdirect(HSTMT,SQL,SQL_NTS ); //SQL_ntsSQL语句的长度if((ret==SQL_success )ret==SQL_success_with_info ) ) /查询之后,所有数据都是一个bar 需要TCHAR name[32]={ 0 }; 短age=0; //绑定字段SQLLEN len=SQL_NTS; sqlbindcol(hstmt,1,SQL_C_LONG,id,sizeof ),0 ); sqlbindcol(HSTMT,2,/*SQL_C_CHAR*/SQL_C_WCHAR,name,sizeof ),len ); sqlbindcol(hstmt,3,SQL_C_SHORT,age,sizeof ),0 );//逐行扫描以获取数据ret=SQLfetch(hstmt )的wile(ret )!=SQL_NO_DATA ) { wcout id 't' name 't' age endl; //每次清除上行的旧数据,保证下一次获取的数据为干净的id=0的zeromemory(name,sizeof ) name ); age=0; //获取下一行缓冲区中的数据并输入id、name、ageret=SQLfetch(hstmt ); } SQLLEN n=0; ret=SQLrowcount(hstmt,n ); //查询受影响的行数(应用于SELECT、INSERT、UPDATE和DELETE操作) ret==SQL _ success|| ret==SQL _ success _ with _ info }elseif(ret==SQL_error ) { SQLTCHAR state[128]={ 0 }; SQLTCHAR msg[128]={ 0 }; //获取错误消息,注意并填写语句句柄ret=SQLerror(Henv、hDbc、hStmt、state、NULL、msg、sizeof ) msg,NULL; wcout state ' ' msg endl; //释放语句句柄if(hStmt ) ret=sqlfreehandle ) SQL_handle_stmt,hstmt; //关闭数据库连接ret=SQLdisconnect(HDBC ); if(ret==SQL_success ) { wcout _T ('已成功关闭数据库连接! ' ) endl; //释放连接句柄if(hDbc ) ret=sqlfreehandle (SQL _ handle _ DBC,HDBC ); //释放环境句柄if(hEnv ) ) ret=sqlfreehandle ) SQL_handle_env,henv ); }返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。