ODBC接口函数连接数据库

ODBC接口函数连接数据库

1.程序展示

#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <stdio.h>
#include <string.h>
int main()
{
 const char *dbname = "数据源";      //数据源
 const char *username = "用户名";     //用户名
 const char *password = "密码";     //密码
 
 SQLHENV henv = SQL_NULL_HENV;      //环境句柄
 SQLHDBC hdbc = SQL_NULL_HDBC;      //连接句柄
 SQLHSTMT hstmt = SQL_NULL_HSTMT;    //语句句柄
 SQLRETURN retcode;        //数据库操作返回结果
 char pgsql_str[2048]={“要执行的数据库语句”};    //数据库操作语句
 int pgsql_len;

 /* 连接操作 */
 //环境句柄(SQL_HANDLE_ENV分配环境句柄)
 retcode = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
 retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
 //连接句柄  ( SQL_HANDLE_DBC分配连接句柄)
 retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
 retcode = SQLConnect(hdbc,(SQLCHAR *)dbname,(SQLSMALLINT)strlen(dbname),(SQLCHAR *)username, (SQLSMALLINT)strlen(username), (SQLCHAR *)password, (SQLSMALLINT)strlen(password)); //连接
 if ( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )   
 {
        printf("-- Connection to database failed\n");
  	return -1;
 }   

 /* 数据库语句执行操作 */
 pgsql_len = strlen(pgsql_str);
 retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);    //(SQL_HANDLE_STMT分配语句句柄)
 retcode = SQLExecDirect(hstmt, (SQLCHAR *)pgsql_str, pgsql_len);     //执行数据库插入语句
 if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))   
 {
  	printf("-- sql exec failed\n");
 }   

 /* 关闭连接操作 */ 
 //关闭并释放语句句柄
 SQLCloseCursor(hstmt);
 SQLFreeHandle(SQL_HANDLE_STMT, hstmt); 
 SQLDisconnect(hdbc);//断开与数据源的连接
 SQLFreeHandle(SQL_HANDLE_DBC, hdbc);//释放连接句柄
 SQLFreeHandle(SQL_HANDLE_ENV, henv); //释放环境句柄  
} 

2.配置文件

2.1.odbc配置文件位置
	默认在/etc/odbc.ini处,数据源名称等可在其中配置
2.2.odbc.ini配置解析(针对postgre数据库的)
	[ODBC Data Sources]					--数据源名称,可自己取
	Description= Test to Postgres				--Postgres数据库
	Driver= PostgreSQL Unicode
	Trace= Yes
	TraceFile= sql.log
	Database=testdb						--连接的数据库名
	Servername= 127.0.0.1					--连接的数据库ip
	UserName= username					--数据库用户名
	Port= 5432							--默认端口
	Protocol= 6.4
	ReadOnly= No
	RowVersioning= No
	ShowSystemTables= No
	ShowOidColumn= No
	FakeOidIndex= No
	ConnSettings=
	MaxVarcharSize= 8096
	Password=12345678					--数据库密码

3.其他数据库配置方法

3.1.MySQL
[MySQL-test]
Description     = MySQL test database
Trace       = Off
TraceFile   = stderr
Driver      = MySQL
SERVER      = 192.168.1.26
USER        = pharvey
PASSWORD    =
PORT        = 3306
DATABASE    = test		

3.2Mini SQL
[Mini SQL]
Description     = MiniSQL
Driver          = MiniSQL
Trace           = No
TraceFile       =
Host            = localhost
Database        =
ConfigFile      =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值