Delphi多表合并数据

Delphi最强悍之处,莫过于数据库编程了。就Delphi提供的数据库组件也是数量不少了,更不用说第三方的数据库组件,那更是多不胜数1,Delphi所提供的数据库组件TDataSource,TADOQuery,TDBGrid,TADOConnection等这些都算是比较常用的,而且是比用到的。

今天写这个文章也用到了上面三个组件,首先,我们先来设置TADOConnection,这个组件主要是设置它的ConnectionString属性,不设置它,我们将无法与数据库建立连接,这个两种设置方法:

1.采用连接字符串形式来连接数据库,这种方法有个缺点,就是当你把数据库文件移到了其他地方之后,程序连接数据库就会出错。或许有人会说,我在窗体创建的时候用代码设置ConnectionString来连接数据库,这样也可以,不过我个人觉得还是不太方便,假如把数据库文件移动到了其他的磁盘那怎么办?连接是不是失败了?

2.采用Data Link文件来连接,好处就是我们可以随时随地的更改数据库的位置。事实上这个Data Link文件是一个udl扩展名的文本文件。你可以把它拖到记事本里看一看它的代码。它的格式类似于INI文件,下面是它的格式:

[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=这里是你的数据库路径(绝对路径)


好了,讲了这么多,似乎话题有些似乎有些跑路了。我们继续多表合并显示吧。其实也没有什么的,比较重要的也就一点,给表起别名,格式如下:

select b.编号, b.姓名, b.住址, a.高数,a.外语, a.计算机文化基础, a.马经, a.数据库管理, a.数据结构, a.软件工程 from 原始表名 别名, 另一个表的原始名称 别名 where a.编号=b.编号


其他的也就没有什么了,我就直接给出代码了:



procedure TForm1.FormShow(Sender: TObject);
begin
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from tb_Stu');
    open;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    with ADOQuery1 do
    begin
      close;
      SQL.Clear;
      SQL.Add('select b.编号, b.姓名, b.住址, a.高数,a.外语, a.计算机文化基础, a.马经, a.数据库管理, a.数据结构, a.软件工程 from 原始表名 别名, 另一个表的原始名称 别名 where a.编号=b.编号');
      open;
    end;
    dbgrid1.Fields[2].DisplayWidth := 15;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.Cancel;
  FormShow(Sender);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  close;
end;


评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭