Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1707264
  • 博文数量: 263
  • 博客积分: 1218
  • 博客等级: 少尉
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-19 02:33
文章分类

全部博文(263)

文章存档

2020年(12)

2019年(2)

2018年(10)

2016年(1)

2015年(20)

2014年(115)

2013年(46)

2012年(37)

2011年(20)

分类: Windows平台

2013-03-11 09:55:53

TTable连接odbc

注要方法:只要将TTableDatabaseName设置为odbc的数据源名, TableName设置为数据库(mysql)中的表名就好.

例子: 在我的mysql数据库中, 有一个数据库test, test数据库中有一张表t1.

create table t1

(

id int ,  ##PK

        name char(8),

        tall float,

class int, ##PK

        primary key(id,class)

       );

表中有些记录.

1 安装好mysqlodbc驱动

2 odbc中配置一个到mysql的连接, DSN名字odbc_mysql_test, 并选择好数据库,输入用户名和密码(我的mysql密码是空的), 测试连接成功.

3 Delphi程序中加入TTable, TDataSource,TDBGrid各属性设置如下

      类型              名称                     属性                                             

TTable             Table1             DatabaseName              odbc_mysql_test

                                              TableName                        t1

TDataSource      DataSource1           DataSet                       Table1

TDBGrid             DBGrid1                DataSource                   DataSource1

TButton             Button1

TButton             Button2(查找记录)

TEdit                 Edit1

加入一个按钮Button1, 并加入事件代码:

procedure TForm1.Button1Click(Sender: TObject);

begin

    Table1.Active:=true;

end;


然后运行程序, 按那个Button1按钮,就可以看到运行结果了.


4
查找某一记录,

       我的表中有存在这么一记录(id=12,class=2, 现在来根据主键(id,class)查找它的名字.

Table1.Active:=true打开表后, TTableSetKeyGotoKey来到某一条记录.

(1)调用Setkey设置表为查找模式

(2)输入要查找字段的值

(3)GotoKey查找某一条记录

下面是查找记录按钮代码

procedure TForm1.Button2Click(Sender: TObject);

begin

    Table1.Active:=true;

    Table1.SetKey;  //设置为查找状态

    Table1.FieldByName('id').AsInteger:=12;   //输入要查找主键字段的值,字段是整型所以用AsInteger,如果是字符串型就用Table1.FieldByName().AsString:=’abc’; 其它类推

    Table1.FieldByName('class').AsInteger:=2;

    if Table1.GotoKey  Then   //查找记录

        Begin

        Edit1.Text:=Table1.FieldByName('Name').AsString; //name字段值

        End

    else

        ShowMessage('要查找的数据没找到');

end;

注意如果用GotoKey的话,这里在SetKey后面要为每个主键字段输入值, 不能多也不能少. 输入字段少的话无法定位到某一记录, 多的话则运行出错



阅读(3530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~