一、创建一窗体,在窗体上包含有一个text控件,一个command控件。要求用户输入一数字,计算N!
请充分考虑程序的正常运行。
2、 在数据库中建立下列两表:
-------------------表 Address-----------------------------------
ID           Name         ParentID
1001         合肥          0
1011         肥东          1001
1012         肥西          1001
1013         长丰          1001
1002         蚌埠          0
1021         怀远          1002
1022         五河          1002
1023         固镇          1002
----------------表 Employee-----------------------------------
ID           Name         Address
1001         李明          1011
1002         赵刚          1001
1003         王强          1002
1004         陈东          1022请使用述两表完成雇员管理系统
实现如下功能:
1、 雇员增加
在增加时,选择库中已有的城市名,城市名实现联动。例如:在地区下拉列表框中选择合肥,则城市列表中出现合肥、肥东、肥西、长丰供用户选择。
2、 雇员查询
输入雇员名,查询其所在城市。3、 请说明如何在自己的程序中使用第三方的控件。
4、 请说明OOP(面向对象的程序设计)概念,5、 并指6、 出程序中如何使用对象。
五、在程序中建一个类的实例。

解决方案 »

  1.   

    1/在数据表中查询在combox中列出父级城市名称
    adoquery.close;
    adoquery.sql.clear;combox.add(adoquery.sql.add(select name from address where parentid=0));
    adoquery.open;
    在combox.change事件中
    select name from address where parentid=(select id from addree where name='+combox.text+');
      

  2.   

    2、select name from address where id=(select address from Employee where name='+text.text+');
      

  3.   

    1在选择城市时候写入下面SQL,执行后把结果写入下拉列表框中可共选择。
    select name from Address 
    where ParentID = (select id from Address where name = '城市名') 
    2、 雇员查询
    select Name from Address 
    where ID = (select Address from Employee where name = '姓名')
      

  4.   

    回答3﹕
    首先將控件裝上去﹐再呢就是要指出你這個控件的.dcu文件和.res放到lib資料夾下面,在你的程 序中加入此控件﹐編 譯﹐通過了
      

  5.   

    我回答最简单的:
    5  var my1:Tmyclass;
        my1:=Tmyclass.create(application);
      

  6.   

    问题很简单, 为什么回答出来的个个都不行呢?1.这个问题显然很简单, 只是有一个问题就是N!可能很大, 你要用什么数据类型来容纳这一值! 这就不简单了.做法: 申明数组,记录每一位的数值. 做乘法的时候要一位一位的来, 就象汇编里边做一样.2.1 这是一个典型的自己关联自己的问题.如果地区与城市不是同一个表,那谁都会这样的问题, 其实也简单, 你只要当做不同的表就行了. 由自己来join自己.
      给个例子:下面的sql取得所有雇员所在的城市和地区:
        select E.ID, E.Name, E.Address, A.Name 城市, B.Name 地区 
        from Employee E
        left join Address A on E.Address = A.ID
        left join Address B on A.ParentID = B.ID2.2 根据雇员名查城市, 这是送分的. 不用多说.3.关于第三方控件, 
      第三方控件有两种(在Delphi中常用的): ActiveX控件(如:Flash)和Delphi控件(如:InforPower)
      对于ActiveX只要有对应的.ocx就可以导入到delphi的组件板, 可以使用了象本来有的一样.只是分发程序时不要忘记把这个.ocx分发给客户并注册.
      对于delphi控件, 一般是提供安装文件(*.exe), 也简单, 不要自己多干涉.不提供的就是*.dpk, 这就有两种运行期包和设计期包. 分别按顺序Install or Compiler. 就可以安装到组件板上.使用就可以了.
      顺便说一句, 商业的第三方控件最好付费后再用.4, 5, 6: 本人面向对象学得不好, 不做回答了.
      

  7.   

    看样子这位兄弟是安徽人啊,也许就是合肥这边的公司。选择已有的城市名:
    procedure SelectCity(id: integer; ACombo: TComboBox);
    var
      tq: TQuery;
    begin
      tq := Tquery.Create(self);
      tq.SQL.Add('select * from address where parentid=:id');
      tq.ParamByName('id').AsInteger := id;
      tq.Open;
      ACombo.Items.Clear;
      while not tq.Eof do 
      begin
        ACombo.Items.add(tq.FieldByName('id') + '  ' + tq.FieldByName('Name').AsString);
        tq.MoveNext;
      end;
      tq.Free;
    end;这个是将某一个 Parentid 的数据填到一个 ComboBox 中 的一个函数。
      

  8.   

    不好意思,写错一个字了。
    ACombo.Items.add(tq.FieldByName('id').AsString + '  ' + tq.FieldByName('Name').AsString);
      

  9.   

    1:答案
    procedure Twhfrm.Button1Click(Sender: TObject);
    begin
     edit2.Text:='';
     edit2.Text:=inttostr(jiecheng(strtoint(edit1.Text)));
    end;
    function twhfrm.jiecheng(can:integer):integer;
    var
      jg:integer;
    begin
       if ((can=0) or (can=1)) then
          result:=1
       else
          result:=can*jiecheng(can-1)
    end;