(1)请问VB中的数据库的连接是写在“共用模块”里还是写在“窗体”里,还是写在“过程”里执行效率高些?
(2)请问这一句代码中:Public conn As adodb.connection的adodb.connection是数据类型吗?怎么在输入的时候没有语法提示的?
(3)Public Function connlink(ByVal sql As String) As adodb.Recordset这一句中的byval代表的是什么?为什么用在Sub过程里会出错?
(4)请问数据库连接是一直打开着还是像WEB那样,要用的时候打开,用完之后关闭,释放资源?

解决方案 »

  1.   

    1.寫在哪里都一樣的,如果是很多地方都要用到此連接就寫在公共模塊中好一點,大家都可以用
    2.adodb.connection 是Adodb的一個類,并不能說是一個數據類型,這個類是用來操作數據庫用的,
       輸入的時候沒有語法提示可能是你沒有在工程中添加對 MicroSoft 的Adodb對象的引用
       打開你的程序,在<工程>菜單中選擇<添加引用>,在彈出的對話框中選擇<MicroSoft ActiveX Data Object 2.1 Library>,再確定就可以了,這樣就把Adodb對象引用到你的工程中了,其中2.1是版本號,可能出現的數字有 2.0 , 2.1 ,2.5 ,2.6 ,2.7 這要看你安裝了什么樣的數據引擎,和打了什么樣的 SP補丁而不同了,不過大至的操作和功能都是一樣的,可以完成對各種數據庫的操作了
    3.Byval 表示 此參數 <sql> 是按值來傳第的,你在此函數中改變了 Sql 的值并不會影響到調用此函數的原始值,相對的參數說明是 ByRef ,有這個標記的參數就是按引用傳值的了,你在函數中改了Sql的值就會影響到調用此函數的原始值了,至于用Sub會出錯,可能是你用了Sub又設置了返回值的原因,Sub <過程>是不能有返回值的 ,而 Function <函數>就可以有返回值
    4.數據庫中一直打開好還是打開然后關閉,要用的時候才打開好,首先要明白一點,
      打開的一數據庫的連接并保持它,會在服務器上占用大約一MB的緩存,但正因為有了緩存,下次對數據庫操作時就會快一些,如果你關掉了,那就要重新打開,總的來說,如果數據操作頻繁就保持一個連接,反之就可以關掉
      

  2.   

    (1)请问VB中的数据库的连接是写在“共用模块”里还是写在“窗体”里,还是写在“过程”里执行效率高些?
    //bas是公用模块,写那都可以(2)请问这一句代码中:Public conn As adodb.connection的adodb.connection是数据类型吗?怎么在输入的时候没有语法提示的?引用ado2.5  Public conn As new adodb.connection(3)Public Function connlink(ByVal sql As String) As adodb.Recordset这一句中的byval代表的是什么?为什么用在Sub过程里会出错?
    倒,那有这么写的(4)请问数据库连接是一直打开着还是像WEB那样,要用的时候打开,用完之后关闭,释放资源?
    释放资源,set connection=nothing我手边没有VB和MSDN只能这样答你,见谅
      

  3.   

    非常感谢zichen66() 的详细解答,小弟获益不浅。
      

  4.   

    1)请问VB中的数据库的连接是写在“共用模块”里还是写在“窗体”里,还是写在“过程”里执行效率高些?
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    回答:具体写在哪里要根据情况而定,不能认死理,不过,大部分的情况下,我们还是写在“共用模块”里,因为这样用起来方便,结构上也合理。(2)请问这一句代码中:Public conn As adodb.connection的adodb.connection是数据类型吗?怎么在输入的时候没有语法提示的?
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    回答:不可能没有语法提示,除非你没有引用ADO对象类库。这个不是数据类型,而是对象类型。(3)Public Function connlink(ByVal sql As String) As adodb.Recordset这一句中的byval代表的是什么?为什么用在Sub过程里会出错?
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    回答:ByVal只能用于函数,不能用于过程(Sub),
    (4)请问数据库连接是一直打开着还是像WEB那样,要用的时候打开,用完之后关闭,释放资源?
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\回答:在WEB里我不知道,但是在C/S这种模式下的,我们大部分都是使用一个Conn,而且是始终开着的。只有在特殊的情况下,才是用完之后马上就关闭。
    反正是肯定也是必须要关闭的。因为,你必须要释放系统占用的资源!!!!