C++连接SQL的简单例子(win 和 linux)

4 篇文章 0 订阅

window上的SQL server2008例子:

// ConSQL.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <tchar.h>
#include<iostream>
#include <string>
#import "c:\program files\common files\system\ado\msado15.dll"  no_namespace rename("EOF", "adoEOF")
using namespace std;
class ADOConn  
{
public:
    _ConnectionPtr m_pConnection;
	_RecordsetPtr m_pRecordset;
public:
	ADOConn();
	virtual ~ADOConn(){};
	void OnInitADOConn();//初始化连接
    void ExecuteSQL(_bstr_t bstrSQL);
};
ADOConn::ADOConn()
{
	CoInitialize(NULL); //初始化必不可少
	HRESULT hr=m_pConnection.CreateInstance(_uuidof(Connection));
	if(FAILED(hr))
		cout<<"_ConnectionPtr对象指针实例化失败!!!"<<endl;
}

void ADOConn::OnInitADOConn()
{
	try
	{	//在COM接口中,参数若为字符串, 一定要用BSTR  
		_bstr_t con_bstr="Driver={sql server};server=127.0.0.1,1433;uid=mysa;pwd=11;database=CTXSYS;";
		m_pConnection->Open(con_bstr,"","",adModeUnknown);// adModeUnknown 缺省,当前的许可权未设置
	}
	catch(_com_error &e) 
	{cout<<e.Description()<<endl;}
}
void ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
	m_pRecordset=m_pConnection->Execute(bstrSQL, NULL, adCmdText);
}

int main(int argc, _TCHAR* argv[])
{
	_bstr_t strSql="select * from  TB_SHANGPIN";//选择表的SQL语句 
	ADOConn con;
	con.OnInitADOConn();
	con.ExecuteSQL(strSql);
	string res;
	while(!con.m_pRecordset->adoEOF)
	{  
		res = (_bstr_t)con.m_pRecordset->GetFields()->GetItem  ("SPBH")->Value; 
		res +="\t";
		res += (_bstr_t)con.m_pRecordset->GetFields()->GetItem  ("SPMC")->Value; 
		res +="\t";
		res += (_bstr_t)con.m_pRecordset->GetFields()->GetItem  ("SPJM")->Value; 
		res +="\t";
		res += (_bstr_t)con.m_pRecordset->GetFields()->GetItem  ("SPLB")->Value; 
		cout<<res<<endl;;  
		con.m_pRecordset->MoveNext();  
	} 
	return 0;
}

linux上的Mysql8.0例子:

/*
* 输出指定表 tbname 的全部数据
* 编译选项: g++ -std=c++11 xdevapi.cpp -lmysqlcppconn8
× mysql 版本: 8.0.11 
*/

#include <mysqlx/xdevapi.h>
#include <iostream>
using namespace mysqlx;

int main()
{
    Session mySession("localhost", 33060, "usrname", "pwd"); //数据库用户名:usrname,密码pwd
    // Switch to use schema 'test'
    mySession.sql("USE dbname").execute();//数据库名:dbname

    // Use an SQL query to get the result
    auto myResult = mySession.sql("SELECT *from tbname").execute();  // 表名:tbname

    // Gets the row and prints the first column
    std::list<Row> allrow = myResult.fetchAll();
    for (std::list<Row>::iterator it=allrow.begin(); it != allrow.end(); ++it)
    {
        for(int i=0;i<(*it).colCount();i++)
            std::cout << (*it)[i]<<"\t";
        std::cout<<std::endl;
    }
}


MySQL Connector/C++开发文档:  https://dev.mysql.com/doc/dev/connector-cpp/8.0/usage.html

guide手册: https://dev.mysql.com/doc/x-devapi-userguide/en/using-sql.html

c++连接Mysql需要的库下载地址: https://dev.mysql.com/downloads/connector/cpp/


以下是下载安装过程:

解压后的文件

解压后把 include 文件夹中的内容复制到 /usr/include

把lib64 文件夹中的内容复制到 /usr/lib

否则就要在编译时加上路径。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
连接SQL Server数据库可以使用多种方法,以下是其中一种常见的方法: 首先,我们需要在计算机上安装SQL Server数据库,并确保数据库已启动。然后,我们需要打开SQL Server Management Studio(SSMS)工具,该工具是用于管理、查询和编写SQL语句的界面。 在SSMS中,我们可以选择“连接到服务器”选项,然后输入要连接SQL Server数据库的服务器名称。对于本地服务器,可以使用"."代替服务器名称。接下来,我们需要选择身份验证方法,通常有“Windows身份验证”和“SQL Server身份验证”两种选项。如果选择“Windows身份验证”,则使用当前登录的Windows用户进行身份验证;如果选择“SQL Server身份验证”,则需要输入已创建的SQL Server登录名和密码进行身份验证。 点击“连接”按钮后,SSMS将尝试连接到指定的SQL Server数据库。如果连接成功,我们将能够看到数据库对象(如表、视图等)和执行SQL查询。 连接SQL Server数据库还可以使用其他方法,例如使用编程语言中的数据库连接库(如Java中的JDBC、Python中的pyodbc等),通过提供服务器名称、身份验证信息和数据库名称来建立连接。这些方法通常需要指定数据库连接字符串,并使用相应的库函数进行连接。 总的来说,连接SQL Server数据库需要提供服务器名称、身份验证信息和数据库名称,并使用相应的工具或库函数进行连接,以便进行数据库管理和查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值