用ADO 连接MySQL的字符串都没有问题

然后放上DBGrid 在Query中添加一个 Select * from Image 语句
在DBGrid 中也能显示出来内容

  TADOConnection *SQLCN = new TADOConnection(NULL);
  TADOQuery *SQLRS = new TADOQuery(NULL);

    SQLCN->LoginPrompt = false;
    SQLCN->ConnectionString = MySQLConnectionString;

    SQLCN->Open();

    SQLRS->Connection = SQLCN;

    SQLRS->SQL->Text = "select * from image";

    SQLRS->Open();

程序到SQLCN->Open(); 都没有报错
但是执行 SQLRS->Open(); 出现问题 数据库提供程序或其他服务返回E_FAIL状态

不知道有哪个高手能指点一下呢 

小弟送50分

C/C++ code
// SQLCN->Open(); 把这句换成下面这句试试看 SQLCN->Connected =true;

// SQLCN->Open(); 把这句换成下面这句试试看

    SQLCN->Connected =true;

问题依旧 

引用 1 楼 yumikoo 的回复:
1,SQLRS使用前先要close
2,SQLRS->Open();改成SQLRS->ExecSQL();试试

问题依旧

现在问题 貌似处在 TADOQeury->Open();或TADOQeury->ExecSQL();

这里 注释了上面的执行语句 就OK

C/C++ code
/* 有没有在命令行(或查询分析器)里面执行过这个sql语句 */

引用 5 楼 nihao9999 的回复:
现在问题 貌似处在 TADOQeury->Open();或TADOQeury->ExecSQL();

这里 注释了上面的执行语句 就OK


就这样解决了?

错误信息是什么

引用 7 楼 xiaolin317 的回复:
引用 5 楼 nihao9999 的回复:
现在问题 貌似处在 TADOQeury->Open();或TADOQeury->ExecSQL();

这里 注释了上面的执行语句 就OK

就这样解决了?

问题没有解决  注销TADOQeury->Open();或TADOQeury->ExecSQL(); 
只是TADOConnection->Open(); 执行了  程序可以正常运行

但 那我还操作什么啊 

引用 7 楼 xiaolin317 的回复:
引用 5 楼 nihao9999 的回复:
现在问题 貌似处在 TADOQeury->Open();或TADOQeury->ExecSQL();

这里 注释了上面的执行语句 就OK

就这样解决了?

问题没有解决  注销TADOQeury->Open();或TADOQeury->ExecSQL(); 
只是TADOConnection->Open(); 执行了  程序可以正常运行

但 那我还操作什么啊 

引用 8 楼 yuanreid 的回复:
错误信息是什么
数据库提供程序或其他服务返回E_FAIL状态

暂时去掉DBGrid,只使用ADOConnection和ADOQuery,测试一下呢?

问题依然

我也用MySQL,没有遇到。

C/C++ code
qry1->Close(); qry1->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=mysql"; qry1->SQL->Clear(); qry1->SQL->Add("select * from agent_oper"); qry1->Open();

测试通过,DBGrid也可以显示查询结果。

那朋友 你能给小弟说一个简单的连接设置吗
??

下载什么版本的MySQL 然后怎么连接呢 ??

还有 你用MySQL +ODBC 吗 ?

/*
你的数据库连接串能贴出来么?

就是MySQLConnectionString的内容。

*/

引用 18 楼 jxw1987628 的回复:
/*
你的数据库连接串能贴出来么?

就是MySQLConnectionString的内容。

*/

这个就是

MySQLConnectionString = "Provider=MSDASQL.1;Password=aa;Persist Security Info=True;User ID=root;Data Source=myodbc3-test";

C/C++ code
// 看不出啥问题,那你可以试试这样 // 你单独用 ADOConnection 的ConnectString 属性build生成连接。 // 点击测试连接,看看是不是显示连接成功!(这里要确保) // 上面成功后,在你的mysql客户端执行你刚才的那个select语句(当然前提是也要连接你对应的数据库) // 看看是不是能成功拿到返回数据集. // 如果以上成功后,应该是没有问题的!

引用 20 楼 jxw1987628 的回复:
C/C++ code// 看不出啥问题,那你可以试试这样

// 你单独用 ADOConnection 的ConnectString 属性build生成连接。

// 点击测试连接,看看是不是显示连接成功!(这里要确保)

// 上面成功后,在你的mysql客户端执行你刚才的那个select语句(当然前提是也要连接你对应的数据库)

// 看看是不是能成功拿到返回数据集.

// 如果以上成功后,应该是没有问题的!

OLE DB 中选择哪个连接呢 ??

自己生成的就有问题
MySQLCN->ConnectionString ="Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=myodbc3-test";

提示找不到数据源

引用 22 楼 nihao9999 的回复:
自己生成的就有问题
MySQLCN->ConnectionString ="Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=myodbc3-test";

提示找不到数据源

找不到数据源的问题解决了

引用 16 楼 nihao9999 的回复:
那朋友 你能给小弟说一个简单的连接设置吗
??

下载什么版本的MySQL 然后怎么连接呢 ??

MyODBC V3.51.11-2
MySQL 5.0 小版本号不记得了

我的问题 解决了 

是因为连接字符串的问题

谢谢大家帮忙  结贴了