您的位置:程序门 -> vb -> 基础类



请问vb中各窗体如何共用一个数据库连接字符串?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问vb中各窗体如何共用一个数据库连接字符串?
发表于:2007-01-15 23:01:28 楼主
我写了一个vb程序,里面有很多窗体,我想各窗体在进行数据库连接的时候共用一个连接字符串,这样方便后期的程序维护,不知道如何写?

我知道可以通过建一个类模块的方式实现,但不知道如何实现?   各位能否举个例子或者给个样例看看

我在类模块中这样写

public   connstring     as   string
connstring   =   "driver={sql   server};server=61.145.163.xx;uid=aoution_crm;pwd=aoution_crm_778899;database=aoution_crm "

但总是出误说 "编译错误:无效外部过程 "

各位帮忙啊.


发表于:2007-01-15 23:03:141楼 得分:0
原来搞过,好多年都没有写程序了,搞忘了;各位提醒一下.
发表于:2007-01-15 23:14:372楼 得分:0
别放在类模块中,放在标准模块中,
public   const     connstring     as   string   =   "driver={sql   server};server=61.145.163.xx;uid=aoution_crm;pwd=aoution_crm_778899;database=aoution_crm "
然后就可以使用connstring
发表于:2007-01-16 17:26:233楼 得分:0
给你个例子
将这个放到模块中
public   function   EXECutesql(byval   sql   as   string,   msgstring   as   string)   as   adodb.recordset
        dim   cnn   as   adodb.connection
        dim   rst   as   adodb.recordset
        dim   stokens()   as   string
        on   error   goto   EXECutesql_error
        stokens   =   split(sql)
        set   cnn   =   new   adodb.connection
        cnn.open   "provider=sqloledb;data   source=服务器名称;initial   catalog=数据库名称;user   id=sa;password=; "  
        if   instr( "insert,delete,update ",   ucase$(stokens(0)))   then

              cnn.EXECute   sql
              msgstring   =   stokens(0)   &   "query   successful "

        else

              set   rst   =   new   adodb.recordset
              rst.open   trim$(sql),   cnn,   adopenkeyset,   adlockoptimistic
             
              set   EXECutesql   =   rst
              msgstring   =   "查询到 "   &   rst.recordcount   &   "条纪录 "

        end   if

EXECutesql_exit:
        set   rst   =   nothing
        exit   function
        set   cnn   =   nothing
EXECutesql_error:
        msgstring   =   "查询错误: "   &   err.description
        resume   EXECutesql_exit
end   function
'在窗体中用法

dim   mrc   as   adodb.recordset
dim   txtsql   as   string
dim   msgtext   as   string
private   sub   cmdsearch_click()
      txtsql   =   "select   *   from   rh_kcyjz   where   yj_time   like   '% "   &   sydate   &   "% ' "
      set   mrc   =   EXECutesql(txtsql,   msgtext)
      do   while   not   mrc
            msgbox   rs(0)
            rs.movnext
      loop
end   sub


快速检索

最新资讯
热门点击