3.TMySQLDatabase
这也是老外开发的pas文件,只有两个文件libmysql.pas、mysqldatabasev10.pas,其它似乎什么都不要了,相当简练。可以去如下网址下载:
http://tech.groups.yahoo.com/group/TMySQLDatabase/ 下载需要申请加入作者的组并等待批准,不过是全免费并且开源的。
使用时也只需将这两个文件放到工程文件夹中,然后就可调用了。下面开发一个简单的Demo。
在Form上放上TStringGrid、3个TButton、TLable。界面显示如下图。
在pas文件头的uses中添加MySQLDatabaseV10,说明引用了该单元。
添加声明:
public
MySQL: TMySQLDatabase;
MySQLQuery: TMySQLQuery;
end;
FormCreate事件:
MySQL:=TMySQLDatabase.Create;
创建TMySQLDatabase。
connectToDB按钮的事件:
MySQL.ServerName:='localhost';
MySQL.UserName:='mysql';
MySQL.Password:='mysql';
MySQL.DatabaseName:='user';
MySQL.Open;
if not MySQL.Active then
MessageDlg(MySQL.ErrorMessage, mtError, [mbOk], 0)
else
begin
MySQLQuery:=TMySQLQuery.Create(MySQL);
end;
if MySQL.Active and MySQL.ServerReady then
Label1.Caption := 'Success'
else
Label1.Caption := 'Fail';
设置数据库连接参数,打开数据库连接,连接成功则创建TMySQLQuery,用以进行数据操作。
queryDB按钮的事件:
var
i, j: Integer;
begin
if MySQL.Active then
begin
MySQLQuery.clear;
MySQLQuery.SQL.add('SELECT * FROM userinfo');
MySQLQuery.Open;
i:=0;
MySQLQuery.first;
while not MySQLQuery.eof do
begin
for j:=0 to MySQLQuery.FieldCount-1 do
StringGrid1.cells[j,i]:=MySQLQuery.FieldByNumber(j).AsString;
inc(i);
MySQLQuery.next;
end;
end;
查询表数据并在StringGrid中显示。
FormDestroy事件:
if not MySQL.Active then
MySQLQuery.free;
MySQL.free;
运行程序,点击connectToDB按钮,如果数据库连接成功可以看到Success提示,然后点击QueryDB按钮就能查询到表中的数据。
总结:
由于没有深入使用这三种连接方式,无法对三者的稳定性、可行性、效率等做出比较。感觉这三者在做基本数据库操作时应该都不会有问题,但在某些深层次应用中难免会存在一些bug,需要在实际应用中去慢慢得见了。这些方面应该还是那些商业化的产品做的比较好吧,条件允许建议还是购买商业化产品,维护、升级等更有保障,开源的东西毕竟和作者的个人兴致关联很大,可能随时就不再更新和维护了。
这也是老外开发的pas文件,只有两个文件libmysql.pas、mysqldatabasev10.pas,其它似乎什么都不要了,相当简练。可以去如下网址下载:
http://tech.groups.yahoo.com/group/TMySQLDatabase/ 下载需要申请加入作者的组并等待批准,不过是全免费并且开源的。
使用时也只需将这两个文件放到工程文件夹中,然后就可调用了。下面开发一个简单的Demo。
在Form上放上TStringGrid、3个TButton、TLable。界面显示如下图。
![](https://i-blog.csdnimg.cn/blog_migrate/3827a671141ffa08db0ac98af2edfb3d.png)
在pas文件头的uses中添加MySQLDatabaseV10,说明引用了该单元。
添加声明:
public
MySQL: TMySQLDatabase;
MySQLQuery: TMySQLQuery;
end;
FormCreate事件:
MySQL:=TMySQLDatabase.Create;
创建TMySQLDatabase。
connectToDB按钮的事件:
MySQL.ServerName:='localhost';
MySQL.UserName:='mysql';
MySQL.Password:='mysql';
MySQL.DatabaseName:='user';
MySQL.Open;
if not MySQL.Active then
MessageDlg(MySQL.ErrorMessage, mtError, [mbOk], 0)
else
begin
MySQLQuery:=TMySQLQuery.Create(MySQL);
end;
if MySQL.Active and MySQL.ServerReady then
Label1.Caption := 'Success'
else
Label1.Caption := 'Fail';
设置数据库连接参数,打开数据库连接,连接成功则创建TMySQLQuery,用以进行数据操作。
queryDB按钮的事件:
var
i, j: Integer;
begin
if MySQL.Active then
begin
MySQLQuery.clear;
MySQLQuery.SQL.add('SELECT * FROM userinfo');
MySQLQuery.Open;
i:=0;
MySQLQuery.first;
while not MySQLQuery.eof do
begin
for j:=0 to MySQLQuery.FieldCount-1 do
StringGrid1.cells[j,i]:=MySQLQuery.FieldByNumber(j).AsString;
inc(i);
MySQLQuery.next;
end;
end;
查询表数据并在StringGrid中显示。
FormDestroy事件:
if not MySQL.Active then
MySQLQuery.free;
MySQL.free;
运行程序,点击connectToDB按钮,如果数据库连接成功可以看到Success提示,然后点击QueryDB按钮就能查询到表中的数据。
![](https://i-blog.csdnimg.cn/blog_migrate/d92e0b0d24d6872a661be06bcdb7187d.png)
总结:
由于没有深入使用这三种连接方式,无法对三者的稳定性、可行性、效率等做出比较。感觉这三者在做基本数据库操作时应该都不会有问题,但在某些深层次应用中难免会存在一些bug,需要在实际应用中去慢慢得见了。这些方面应该还是那些商业化的产品做的比较好吧,条件允许建议还是购买商业化产品,维护、升级等更有保障,开源的东西毕竟和作者的个人兴致关联很大,可能随时就不再更新和维护了。