在做一个小型的项目,采用三层结构。我写的结构:问题如下:
    1、因为涉及的东西有点复杂,设计了多个数据库A、B...(Access)。
DLBussiness的启动函数main()有连接数据库A,请问我如何在其中链接数据库B呢?
    2、如果DLBussiness中出错,如数据库文件被破坏,怎么结束整个程序呢?我用了end提示“DLL不支持此功能”。
    这个问题,我想可以用ini文件来解决,程序启动的时候就可以判断数据库是否存在。那其他问题呢?例如违反数据库约束这些。
    3、DLBussiness中的mdlPublic我写了数据库的通用操作函数,然后在DLBussiness的类模块中是针对每个用户控件的实际操作函数。不知道这样的结构是否正确。

解决方案 »

  1.   

    那么复杂的东西,只有实际测试才能知道效果,但(2)用End结束程序是对的
      

  2.   

    1、.net中可以建立多个连接源,方法视乎你用什么方式,如果用数据集可以直接在管理器中新增,如果用adodb可以声明多个;
    2、可以在其它数据库调用前先判断DLBussiness的连接状态state,如果正确(正确的值好像是4,试下就知道了)则继续,否则结束。结束时先关闭所有外部的声明、调用,包括运行过程引入的模块结构等,而且最好建立一个结束过程,随便用end是非常不良好的习惯。
    3、能正常实现目标的结构就是正确啦。
      

  3.   


    1、问题现在是用vb6,难道也是创建多个公用的Connection吗?然后再去判断那个表是用的那个Connection链接,我怎么感觉这些很怪?
    2、直接用end是测试是否可以这么用,结果提示“DLL不支持此功能”。我是想判断如何dll里面出错就结束程序。
    3、不知道这能不能叫得上三层结构。苦闷中...
      

  4.   

    1.连接了一个ACCESS数据库,就可以访问其它ACCESS数据库,只要指定路径,比如:
    select * from [D:\db2.mdb;pwd=123].tbName
    2.这个是你错误处理的问题了,DLL中出错你可以给主程序中调用其的函数返回一个值,主程序end
    3.个人感觉可以这样
      

  5.   


    select * from [D:\db2.mdb;pwd=123].tbName 
      受教了,谢谢。我感觉我对三层结构的掌握还很不够。
      

  6.   

    三层结构也没什么定式,只是一种概念,基本上就是表示层不直接访问数据库,可以是多层的......
    分层的主要好处在于升级和维护,特别是对于大型的系统.....
    不过,VB开发表示层界面是不错的,但对于访问层,如果考虑升级和维护,个人感觉VB的com组件不太方便......