写给那些准备使用BCB + MYSQL的新手们

时间:2021-07-14 16:32:11
高手们就可以不用看了。

我是一个新手,刚接触BCB+ MYSQL,刚开始的时候,我到处GOOGLE,学会了使用MYODBC+ADO来连接MYSQL,刚开始发现还可以,只是麻烦点要建一个ODBC。也就认了。后来发现ADO对MYSQL的支持确实让我不是很满意(个人意见,我水平有限,可能是我自己不会搞)。
第一次遇到问题是,建了个blog字段来存文件,
TBlobField *Field = (TBlobField*)MyQuery->FieldByName("file_data");
结果,读出来的时候Field->SaveToFile(fn);老实报错。
所幸,有高手推荐我使用MYDAC,问题解决了,代码完全没改,一抹一样。搞定。
第二次,一个查询语句,但是当纪录为空的时候,报错,错误是Invalid field size.我为了搞清楚,我把语句直接放到MYSQL里运行,没错,我去掉所有的条件,直接select * from table他还同样的错。而且诡异的是,我那个工程里,另外一个地方也有个select,查询空纪录却不报错。后来我试了MYDAC,ok,一点问题也没有。
所以我个人认为,如果使用MYSQL,还是别用ADO。
以上绝对个人观点,请大家别骂我无知,谢谢。

10 个解决方案

#1


我也是个新手,不过用的ADOCONNECTION连接数据库,感觉不错~~~推荐一下。。。

#2


这个问题我以前也遇到过;应该是CB6的原因;你用VC不会;用CB2006也不会.你用BDE连接MYODBC也不会.呵呵当初我被逼的用VC

#3


呵呵:)

#4



1.  以下是研究 mysql 5.0.22 得出的结果,描述并使用标准 c++演
示了使用 MySQLC API 函数 简单操作数据库的流程;
例子程序在 VC6(VC7.1) + windows 2000 上调试通过;
例子程序在 red hat linux 9,red fc6 上调试通过

2. 程序实现了数据库连接池技术,有效的提高了数据访问速度


http://blog.csdn.net/hzhxxx/archive/2006/12/14/1443031.aspx

#5


楼主的MYDAC版本是?破解的?

#6


关于这个问题,我回过很多贴了,ado对非ms的数据库支持都不是很好,还不如用odbc+bde
连mysql我用dac for mysql

#7


我好像就是听了 KEIY()才改用DAC的

是啊,我的DAC是破解的,好像没提示要我注册,哈哈。



不过郁闷的很,我的程序在我电脑上连接本机或别的机器的MYSQL都没问题。但是,程序拿到别的机器运行却死活连不上MYSQL,求高手指点。
好像没有什么特别的地方报错。就是不能连接阿。
    MyConnection1->Server =  ;
    MyConnection1->Username =  ;
    MyConnection1->Password =  ;
    MyConnection1->Database =  ;
都付之了。
MyQuery1的connection 是MyConnection1,已经设置好了. 

    MyQuery1->SQL->Clear();
    AnsiString str = "select * from tab";
    MyQuery1->SQL->Add(str);
    try
    {
        MyQuery1->Open();
    }
    catch(...)
    {
        AnsiString sWarning = "Failed to connect the database! Please check your setting.";
        MessageDlg(sWarning, mtWarning,TMsgDlgButtons()<<mbOK,0);
        return;
    }
进到CATCH里了。

#8


为啥要用ADO?BCB6自带的DBExpress应该更好一些吧。

BTW:偶不喜欢MySQL,没试过,纯属路过。-_-|||

#9


就是没有mydac的最新版本
呵呵

#10


有人有MYDAC的破解版吗?我那个是TRIAL的

#1


我也是个新手,不过用的ADOCONNECTION连接数据库,感觉不错~~~推荐一下。。。

#2


这个问题我以前也遇到过;应该是CB6的原因;你用VC不会;用CB2006也不会.你用BDE连接MYODBC也不会.呵呵当初我被逼的用VC

#3


呵呵:)

#4



1.  以下是研究 mysql 5.0.22 得出的结果,描述并使用标准 c++演
示了使用 MySQLC API 函数 简单操作数据库的流程;
例子程序在 VC6(VC7.1) + windows 2000 上调试通过;
例子程序在 red hat linux 9,red fc6 上调试通过

2. 程序实现了数据库连接池技术,有效的提高了数据访问速度


http://blog.csdn.net/hzhxxx/archive/2006/12/14/1443031.aspx

#5


楼主的MYDAC版本是?破解的?

#6


关于这个问题,我回过很多贴了,ado对非ms的数据库支持都不是很好,还不如用odbc+bde
连mysql我用dac for mysql

#7


我好像就是听了 KEIY()才改用DAC的

是啊,我的DAC是破解的,好像没提示要我注册,哈哈。



不过郁闷的很,我的程序在我电脑上连接本机或别的机器的MYSQL都没问题。但是,程序拿到别的机器运行却死活连不上MYSQL,求高手指点。
好像没有什么特别的地方报错。就是不能连接阿。
    MyConnection1->Server =  ;
    MyConnection1->Username =  ;
    MyConnection1->Password =  ;
    MyConnection1->Database =  ;
都付之了。
MyQuery1的connection 是MyConnection1,已经设置好了. 

    MyQuery1->SQL->Clear();
    AnsiString str = "select * from tab";
    MyQuery1->SQL->Add(str);
    try
    {
        MyQuery1->Open();
    }
    catch(...)
    {
        AnsiString sWarning = "Failed to connect the database! Please check your setting.";
        MessageDlg(sWarning, mtWarning,TMsgDlgButtons()<<mbOK,0);
        return;
    }
进到CATCH里了。

#8


为啥要用ADO?BCB6自带的DBExpress应该更好一些吧。

BTW:偶不喜欢MySQL,没试过,纯属路过。-_-|||

#9


就是没有mydac的最新版本
呵呵

#10


有人有MYDAC的破解版吗?我那个是TRIAL的