观海听涛BBS's Archiver

yiyanwan77 发表于 2008-4-30 11:25

(已解决)求助vc ado连接mysql的问题

[attach]67156[/attach]
上面的数据源名 和 数据库名 有什么区别?
我创建了一个数据库为:USERS
是不是都填USERS?

[[i] 本帖最后由 yiyanwan77 于 2008-5-1 11:54 编辑 [/i]]

蓝月鸟 发表于 2008-4-30 12:00

程序使用MySQL常见的两种方法
1、直接通过DB_URL:port、UserName、Password作为依据访问(这种用的比较多,推荐)
2、通过配置ODBC。
[free]第二种方法中
数据源名是你的程序调用的时候使用的,相当于给数据库起了个别名。(类似于变量引用和变量本身的关系)
数据库名是MySQL内部一个库的名字,一个MySQL Server可以拥有很多库,每个库包含很多表。
cmd下输入
>mysql -u root -p
> (此处输入密码,没有则留空)
>show databases(显示所有库)
>use test(使用test数据库)
................其他不做过多说明
[/free]

yiyanwan77 发表于 2008-4-30 14:57

[quote]原帖由 [i]蓝月鸟[/i] 于 2008-4-30 12:00 发表 [url=http://bbs.ghtt.net/redirect.php?goto=findpost&pid=1234285&ptid=104756][img]http://bbs.ghtt.net/images/common/back.gif[/img][/url]
程序使用MySQL常见的两种方法
1、直接通过DB_URL:port、UserName、Password作为依据访问(这种用的比较多,推荐)
2、通过配置ODBC。
第二种方法中
数据源名是你的程序调用的时候使用的,相当于给数据库起了个别名。(类似于变 ... [/quote]
谢谢了
我用vc,想用ado方式访问。
D:\MySQL Server 5.0\data\users这个是我创建数据库users的路径
你看下面的代码
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
pConn->ConnectionString="DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost;\
DATABASE=USERS; USER=root; PASSWORD=123456;OPTION=3;";
pConn->Open("","","",adConnectUnspecified);
pRst=pConn->Execute("select * from user_info",NULL,adCmdText);
while(!pRst->reEOF)
{
  ((CListBox *)GetDlgItem(IDC_LIST1))->AddString(
   (_bstr_t)pRst->GetCollect("name"));
  pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pRst.Release();
CoUninitialize();
CoUninitialize();
头文件中:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","reEOF")
为什么总是出错呢
[attach]67182[/attach]
那个连接字符串改了好几次都不行
用ado方法是不是不需要包含mysql.h和include的路径了么?
那我创建数据库的路径也不需要在工程里体现么?
还有我改了mysql的访问端口号为3307,在连接字符串里要加上么?

yiyanwan77 发表于 2008-4-30 16:28

很急啊

自己顶一下喽

蓝月鸟 发表于 2008-4-30 17:29

[url=http://topic.csdn.net/t/20050517/11/4013037.html]http://topic.csdn.net/t/20050517/11/4013037.html[/url]

[free]
一、安装MyODBC   
      
1.访问网站   [url=http://www.mysql.com]www.mysql.com[/url]   并下载   MyODBC   ,我们使用的是3.51版本。   
      
2.安装MyODBC到Windows中   
      
运行下载回来的MyODBC-3.51.06.exe(文件名因版本而异)   
      
二、建立ODBC连接   
      
进入:控制面板-》ODBC数据源   
      
这时候,我们已经可以看到在用户DSN中已经存在一项:myodbc3-test,注意右边的Driver{mysql   odbc  3.51   driver}这个参数一会要一字不漏的作为ASP和数据库连接的连接字(Conection   String)。   
      
添加一个“系统DSN”   
      
选择对话框中“系统DSN”栏,按下右边的“添加”按钮。这时候会让你选择一个数据源。选择   MySQL   ODBC   3.51   Driver。按“结束”。   
      
这时候,会弹出一个配置对话框:   
      
Data   Source   Name   数据源名字:在程序中使用的DSN的标识符,可以随便命名。   
      
Host/Server   Name   (or   IP)主机/服务器   名字   (或者IP   地址),如果是本机就填入localhost   
      
Database   Name   数据库名:你要在程序中使用的库名。   
      
User   用户:登录MySQL   使用的用户名,特别注意,root用户由于安全问题只能在本机登录,当然啦,用户可以通过修改user表来去掉这个功能。   
      
Password   密钥:登录的密码   
      
Port   端口:使用默认值,最好不要改,除非你有把握。   
      
全部设置好了以后,按下“测试数据源”会看到屏幕显示连接成功。   
      
配置就全部搞定了!   
[/free]
[free]
采用mysql数据库中作为vc的连接数据库,当采用ado来处理时,只需要按下面步骤即可。

1.下载mysql odbc,or mysql ole,由于俺下了个mysql ole出了错,偷懒便直接下了mysql odbc,

    版本必须是3.51.11以上的,版本以下可能就出错。

2.安装后,采用odbc建立一个连接的mysql数据连接,通过udl文件取出其中的字符串。

3.替换在vc中连接ado的数据的字符串方法,即可正常连接。

采用myodbc的字符串如下:

CString strConn = "Provider=MSDASQL.1;Password=zcc123;Persist Security Info=True;\
            User ID=root;Data Source=test";


测试代码附在:[url=http://www.cppblog.com/Files/kenlistian/mysql_test.rar]http://www.cppblog.com/Files/kenlistian/mysql_test.rar[/url]
[/free]

yiyanwan77 发表于 2008-4-30 18:53

[quote]原帖由 [i]蓝月鸟[/i] 于 2008-4-30 17:29 发表 [url=http://bbs.ghtt.net/redirect.php?goto=findpost&pid=1236225&ptid=104756][img]http://bbs.ghtt.net/images/common/back.gif[/img][/url]
555555
看到你的回帖
我测试了下数据库连接
发现连接不成功
然后重新把mysql配置改为3306端口
重装了myodbc
然后界面就变成
[attach]67247[/attach]
赶紧打开vc
点击。。。
运行成功
555555555555
爱死你了 蓝月鸟[em02] [em02] [em02] [em02] [em02] [em02] [em02] [em02] [em02]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.