怎么链接一个服务器上的mysql数据库

怎么链接一个服务器上的mysql数据库,第1张

有多种方法啊。介绍其中一种,使用mysql数据库的odbc驱动。

步骤:

1.安装mysql数据库的odbc驱动,mysql-connector-odbc-3.51.23-win32.msi(其中*是版本号),下载并安装。

2.在mysql中创建数据库实例。

3.打开控制面板

--

管理工具

--

数据源odbc,在用户dsn中添加一个mysql

odbc

3.51数据源

4.在登录login选项卡中输入数据源名称data

source

name,此处输入mysqldns(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器server,用户user,密码password,输入正确后选择要导入的数据库,database选择你需要导入的数据库。在连接选项connect

options中根据需要设置mysql使用的端口port和字符集character

set。

注:字符集一定要和mysql服务器相对应,如果mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到sql

server可能会出现问号乱码。

5.打开sql

server企业管理器,选择该数据库,单击右键选择所有任务

--

导出数据。

6.‘选择数据源’为默认,‘选择目的’为刚刚安装的mysql数据源,用户/系统dsn为mysqldns。

方法2:

有多种方法啊。介绍其中一种,使用mysql数据库的odbc驱动。步骤:

1.安装mysql数据库的odbc驱动,mysql-connector-odbc-3.51.23-win32.msi(其中*是版本号),下载并安装。

2.在mysql中创建数据库实例。

3.打开控制面板

--

管理工具

--

数据源odbc,在用户dsn中添加一个mysql

odbc

3.51数据源。

4.在登录login选项卡中输入数据源名称data

source

name,此处输入mysqldns(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器server,用户user,密码password,输入正确后选择要导入的数据库,database选择你需要导入的数据库。在连接选项connect

options中根据需要设置mysql使用的端口port和字符集character

set。

注:字符集一定要和mysql服务器相对应,如果mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到sql

server可能会出现问号乱码。

5.打开sql

server企业管理器,选择该数据库,单击右键选择所有任务

--

导出数据。

6.‘选择数据源’为默认,‘选择目的’为刚刚安装的mysql数据源,用户/系统dsn为mysqldns。

//ADO连接,首先要加载ADO模块,然后再调用。

1,先创建数据库Temptest,新建一张表StuMessage,其中包含列ID、StuName、StuSex、StuAge、StuScore

2,建立C++类,类名例为ADO。

在ADO.h的#prama once后添加:#import "c:\program files\common files\system\ado\msado15.dll no_namespace rename("EOF", "adoEOF")rename("EOF", "adoEOF")

#include <icrsint.h>

class ADO

{

_RecordsetPtr m_pRecordset

public:

_ConnectionPtr m_pConnection

ADO()

virtual ~ADO()

void Connect(void)

void ExitConnect(void)

_RecordsetPtr&GetRecordset(_bstr_t SQL)

}

3,ADO.cpp 在类中写入对应的方法。

ADO::ADO()

{

m_pConnection = NULL

}

ADO::~ADO()

{

}

void ADO::Connect(void)

{

try{

cout<<"正在连接数据库,请稍等!"<<endl

::CoInitialize(NULL) //初始化COM环境

m_pConnection.CreateInstance(__uuidof(Connection)) //创建连接对象

m_pConnection->ConnectionString="Provider=SQLOLEDB.1Persist Security Info=TrueUser ID=saPassword=12345Initial Catalog=TempTestData Source=192.168.8.6"//请将数据库参数相应ID、Password、地址更改

//连接服务器和数据库

HRESULT hr=m_pConnection->Open("", "", "", 0)

if(hr!=S_OK)

cout<<"不能连接到数据库,请确认数据库是否开启!"<<endl

else

cout<<"连接成功!"<<endl

}

catch(_com_error e){

cout<<(char *)e.Description()<<endl

}

}

void ADO::ExitConnect(void)

{

if(m_pRecordset!=NULL){

m_pRecordset->Close()

m_pConnection->Close()

}

::CoUninitialize() //释放环境

}

_RecordsetPtr&ADO::GetRecordset(_bstr_t SQL)

{

m_pRecordset=NULL

ADO link

try{

if(m_pConnection==NULL)

Connect()

m_pRecordset.CreateInstance(__uuidof(Recordset))

m_pRecordset->Open((_bstr_t)SQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText)

}

catch(_com_error e){

cout<<(char *)e.Description()<<endl

m_pRecordset=NULL

return m_pRecordset

}

return m_pRecordset

}

4,主文件.cpp

// 数据库ADO.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "ADO.h"

#include <iostream>

#include <string>

using namespace std

int main(int argc, char* argv[])

{

printf("Hello World!\n")

string sql

ADO record

_RecordsetPtr m_pRecordset

//增加

{

sql="select * from StuMessage"

_bstr_t bstr_t(sql.c_str())

m_pRecordset=record.GetRecordset(bstr_t)

m_pRecordset->AddNew()

m_pRecordset->PutCollect("ID", _variant_t("1"))

m_pRecordset->PutCollect("StuName", _variant_t("edward"))

m_pRecordset->PutCollect("StuSex", _variant_t("m"))

m_pRecordset->PutCollect("StrAge", _variant_t("17"))

m_pRecordset->PutCollect("StrScore", _variant_t("98"))

m_pRecordset->Update()

}

{

//插入

sql = "insert into StuMessage(ID,StuName,StuSex,StrAge,StrScore) values ('3','liuhai','l',19,97)"

_bstr_t bstr_t(sql.c_str())

_variant_t RecordsAffected

record.m_pConnection->Execute(bstr_t,&RecordsAffected,adCmdText)

cout<<"插入成功!"<<endl

}

{

//修改

sql = "update StuMessage set ID='2',StuName='wangqing',StuSex='l',StrAge=18,StrScore=99 "

_bstr_t bstr_t(sql.c_str())

_variant_t RecordsAffected

record.m_pConnection->Execute(bstr_t,&RecordsAffected,adCmdText)

cout<<"修改成功!"<<endl

}

{

//删除

sql = "delete from StuMessage"

_bstr_t bstr_t(sql.c_str())

_variant_t RecordsAffected

record.m_pConnection->Execute(bstr_t,&RecordsAffected,adCmdText)

cout<<"删除成功!"<<endl

}

record.ExitConnect()

return 0

}

以上程序能够运行,并且可以 *** 作SQL数据表中记录。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9973922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存