初学数据库的几个问题:
1、我看了不少书都没有说明如何建立数据库,我要用ACESS2000跟ADO,不知道在哪里建立数据库,没办法只好装了个Offers2000去建立数据库,这是不是正道呢?
2、如何给数据库(ACESS2000)加上用户名和密码呢?
3、我的数据库至少有五个字段,公司、用户、密码、资料A、资料B、数据、……;有至少有十条资料,从公司0到公司xx。
    我的程序用的是MDI模式,有三个子窗口,子窗口一、二为自动创建,子窗口三为手动创建;
    主窗口中有ADOconnection连接到数据库,子窗口三中有Datasource、DBGrid和ADOtable,DBGrid显示数据库中所有的数据,子窗口中都USER了主窗口,主窗口也USER了所有的子窗口(在implementation中);
    现在我要让程序在启动时  (注意此时子窗口三还没创建):
    A、主窗口的str字符串的内容为公司1的资料A;
    B、子窗口一的str1字符串的内容为公司3的数据;
    C、子窗口二的str2字符串的内容为公司9的资料B;
  我该怎么做呢?
  我想该用SELECT,但不知道该怎么写,请给个实例。谢谢!

解决方案 »

  1.   

    1.用Delphi自带的DataBase Desktop应该可以生成的,但不如用ACESS方便.
    2.Access2000--工具--安全,可以设置密码
    3.
    Adoquery1.Sql.txt:='select 资料A from 公司1';
    Adoquery1.open;
    str1:=Adoquery1.fieldbyname('资料A').Asstring;
    就可以赋值了(首记录)
      

  2.   

    在主窗体中加多一个adoQuery1procedure TForm1.FormCreate(Sender: TObject);
    var sqlstr:string;
    begin
      sqlstr:='select 资料A from 公司1';
      adoQuery1.close;
      adoQuery1.sql.clear;
      adoQuery1.sql.add(sqlstr);
      adoQuery1.sql.open;
      str:=adoQuery1.fieldbyname(资料A).asString;  
    end;子窗体1创建时,添加代码:(在 TchildForm1.create(self) 后)
      sqlstr:='select 数据 from 公司3';
      adoQuery1.close;
      adoQuery1.sql.clear;
      adoQuery1.sql.add(sqlstr);
      adoQuery1.sql.open;
      childForm.str1:=adoQuery1.fieldbyname(数据).asString;  同理 :子窗体2创建时,添加代码:(在 TchildForm2.create(self) 后)
      sqlstr:='select 资料B from 公司9';
      adoQuery1.close;
      adoQuery1.sql.clear;
      adoQuery1.sql.add(sqlstr);
      adoQuery1.sql.open;
      childForm2.str2:=adoQuery1.fieldbyname(资料B).asString;  
      

  3.   

    关于建立access数据库的问题:
    用程序可以建立,问题是太麻烦,以前写过,现在忘了
    一个好的替代办法是:在开发的时候,用access建立一个空库。程序中要新建库的时候,将这个数据库文件拷贝一份就可以了。发布的时候,连带这个空库一起发布。
    如果怕用户的机器上没装access驱动,可以将ms的access驱动文件一起打包并注册
    具体有哪些驱动文件,可以在网上查查。另外一个麻烦事是数据库用久了需要压缩,也忘了以前是怎么写的了(我现在转向java了,ms的好多东东都忘了),好象需要调用com接口吧
      

  4.   

    谢谢 flp(会说话的哑巴) 假如子窗口还有个str3字符串的内容为公司9的密码;
    是不是
      sqlstr:='select 资料B from 公司9';
      adoQuery1.close;
      adoQuery1.sql.clear;
      adoQuery1.sql.add(sqlstr);
      adoQuery1.sql.open;
      childForm2.str2:=adoQuery1.fieldbyname(密码).asString;  
      sqlstr:='select 密码 from 公司9';
      adoQuery1.close;
      adoQuery1.sql.clear;
      adoQuery1.sql.add(sqlstr);
      adoQuery1.sql.open;
      childForm2.str3:=adoQuery1.fieldbyname(密码).asString;  这样写,如果还要增加字符串那还得这样重复这几句吗?还是有新的简洁的法子。假如子窗口二也是手动创建的呢?
      

  5.   

    好文章,一次集成解决问题。 收藏。&up
      

  6.   

    你还是去看看SQL语言吧!经常用到的!