顺问:
    感觉学习DELPHI已经还可以了,如何深入?!    最早做数据库应用软件,最经常写的就是:
    //看到现在好多大公司里都是这样写代码的。
    AdoQuery.FieldByName('FieldName').asString:='';
    AdoQuery.post;
    后来,
    TDataBase=class //数据库基类
    private
    protected
      procedure NewRecord;virtual;
      procedure Edit;virtual;
      procedure Delete;virtual;
      procedure Update;virtual;
    public
      constructor Create(AdoQuery:TAdoQuery);overload;
      constructor Create(const ATableName:string='');overload;然后,每个表都是用一个类来包装。再后来,研究通信,如邮件协议,邮件服务器,winsock等。迷茫中, 不知道要用什么?看身边的人在看着C#,哎!!!!
谁指点迷津?

解决方案 »

  1.   

    haha
    liumengchuan
    //
    “再后来,研究通信,如邮件协议,邮件服务器,winsock等。”
    和DELPHI没什么关系啊,VC++也一样
      

  2.   

    我有几本实例方面带光盘的书,你要的话发短信告诉我你的EMAIL,我把光盘中的东东发给你,全是源程序。
      

  3.   

    后来,
        TDataBase=class //数据库基类
        private
        protected
          procedure NewRecord;virtual;
          procedure Edit;virtual;
          procedure Delete;virtual;
          procedure Update;virtual;
        public
          constructor Create(AdoQuery:TAdoQuery);overload;
          constructor Create(const ATableName:string='');overload;然后,每个表都是用一个类来包装
    ---------------------------------------
    好做法:)
    Delphi应该再可以有三四年的时间吧。之后如何就很难说了。
    .net 和Java应该是不错的选择。
      

  4.   

    您说的每个表用一个类来封装是什么意思呢?或是有这个必要吗?我一般:
      FADOQuery : TADOQuery Read ... Wirte ....;
      Procedure Edit..(FiledName,FiledValue,Type : Array of String)..
      ...//如此之类的,或是
      
      IDataBase = Interface()
      {GUID}
       ....
      
      TDataBase = Class(DBEdit , IDataBase)
       ...
      

  5.   

    ihihonline:我一般使用ModelMaker(简称MM)建模工具来编写数据库应用类。
    在Patterns里Register Code template.建立代码模板.编写好后,还可以自动生成接口.>>您说的每个表用一个类来封装是什么意思呢?或是有这个必要吗?
    回复人: wdsimon(老王) ( ) 信誉:99  2003-8-16 8:24:32  得分:0 
    如何把表封装成类,楼主可以将清楚些吗,谢谢!比如有一个TUser表,我写了一个TUserClass类来封装:
    假设字段是:
       ID:int
       Name:str
       Age:int
       Tel:str
       Addr:str  TUserClass=Class(TDataBase)  //从数据库基类继承
      private
      public
        property name:string read getname write setname;
        property Age:integer read getage write setage;
        property tel:string read gettel write settel;
        property addr:string read getaddr write setaddr;
    //当然,这些类的所有代码都是MM生成的。不必发费那么多的力气去一个个写property的。要增加记录:
       TUserClass的实例.newRecord;
                      .name:='Shit';
                      .age:=10;
                      .tel:=0000000;
                      .addr:='beijing China.';
                      .update;
    当然,这里是说使用类的,接口也差不多,但是使用接口你创建后不必释放,它会自动释放。
      

  6.   

    可以借鉴C++的做法,采用模板形式。
    所有的类似的DB操作抽象成一个模板类,类中包括相关操作。
    为每个具体的表或数据结构抽象一个类,类的接口规范符合模板类的接口规范即可。
    这样,所有的DB调用都采用统一方式进行,新表的扩充只需要增加对应的类即可,程序的大体框架仍然保持不变,代码的复用性可以大大提高,可实现UI和DB操作的完全分离。
      

  7.   

    >>King_Dragon可以借鉴C++的做法,采用模板形式。
    所有的类似的DB操作抽象成一个模板类,类中包括相关操作。
    为每个具体的表或数据结构抽象一个类,类的接口规范符合模板类的接口规范即可。
    这样,所有的DB调用都采用统一方式进行,新表的扩充只需要增加对应的类即可,程序的大体框架仍然保持不变,代码的复用性可以大大提高,可实现UI和DB操作的完全分离。我一直想采用这种方法,但是我现在还只能采用基类+每个表一个类的方法解决。主要是因为不知道怎样让基类适应不同表的不同字段?因为我现在将每个表的记录声明成一个Record,关键怎样自动获知Record中的成员名称,我不知道。有人知道吗?
      

  8.   

    菜鸟一个
    正再拼命学delphi
      

  9.   

    我以前也是这样写不过不知delphi7 中是不是有别的方法,
    好久没用delphi啦
      

  10.   

    我没这种修为啊。现在都是AdoQuery.FieldByName('FieldName').asString:='';
    可怜啊~~~~~~~~~!
    up
      

  11.   

    ADOQuery['FieldName']:='';也很好用啊。
      

  12.   

    ADOQuery['FieldName']:='';是很好使用,但是,却不利于代码的维护!
      

  13.   

    好贴,把zswangII都吸引过来了。UI分离确实有点小麻烦,但是维护起来很方便。
      

  14.   

    我觉得,任何语言都是工具,关键是编程思想,如何有好的创诣,
    努力,delphi应该可以帮你的
      

  15.   

    UP~~~感觉到好大差距啊~~虚心郁闷+虚心学习ING~~~