Home 綜合 vb6連線MS SQL2019資料庫的問題

vb6連線MS SQL2019資料庫的問題

0

  不要用ado控制元件,不方便。

  推薦使用ado引用,即在引用中加入adodb.dll。

  然後按如下步驟:

  1、建立物件

  dim cn as new connection

  dim rs as new recordset

  dim s as string

  ’開啟資料庫連線

  s=”driver=sql server;server=.;uid=你的登入id;pwd=你的登入密碼;database=aaaa;”

  cn.connctionstring=s

  cn.open

  ’接下來用recordset物件讀取資料,示例**,因不知道你的表及結構。

  s=”select 欄位1,欄位2 from 表名 where 欄位1=條件”

  rs.open s,cn,3,1 ‘3和1的意思,請看幫助文件,目的是使用recordset物件中的資料可靈活使用。

  ’關閉物件

  rs.close

  set rs=nothing

  cn.close

  set cn=nothing

  1,控制元件屬性選擇。

  2,選擇資料驅動sqlserver

  3,將伺服器ip,使用者名稱,密碼輸入

  4,選擇db 測試資料連線是否成功

  5,選擇需要選擇的表

  6,5確定後返回一個連線字串返回到ado控制元件屬性。該控制元件就與資料庫建立了連線。

  vb6連線sql server資料庫問題
5

  cn.connectionstring= “data source=pmserver;initial catalog=benchmark; persist security info=false;user id=sa;password=sa;”

  這行中的伺服器名稱、資料庫名稱、資料庫使用者名稱、資料庫使用者密碼都跟原作者的一樣麼?有一個不一樣的地方就出這個錯誤,其中

  pmserver是伺服器名稱

  benchmark是資料庫名稱

  sa是資料庫使用者名稱稱

  第二個sa是資料庫使用者密碼

  把這個連線串改成你自己的就可以了。再不會的話留下qq我幫你連通。

  vb6連線遠端資料庫sql2000

  分析了一下你的問題,有幾點問題你需要排查:

  1、既然是動態域名,那麼你的資料庫伺服器應該面對的是公網。如果是公網,區域網ip連線是否成功就毫無意義。

  2、你有否嘗試過使用公網ip連線,如果使用公網ip連線成功,那就有可能是域名解析的問題。

  3、你是否設定好了路由器的埠對映,分析你的題目,我估計你網路狀態可能是多層路由,那麼多層路由的埠對映是否都設定好了?還是隻設定了一層?

  4、如果設定好了埠對映,是不是還有埠號的問題,雖然我沒有嘗試過,但是由於你的兩臺電腦可以通過區域網ip連線,可以看出兩臺電腦雖處於不同網段,但共同使用一個路由接入公網,這樣會不會產生埠號衝突?可以嘗試修改資料庫伺服器的sql server的埠號,並進行對映。

  5、伺服器上的資料庫是使用預設例項名還是指定例項名,如果是指定例項名要在伺服器名後加上例項名。

  6、建議,區域網內使用區域網ip連線,區域網外使用域名連線。測試也要放在區域網外測試才有意義。

  你描述的可能有問題

  1、如果是區域網內連線,需要設定區域網內的計算機在一個工作組,並且需要設定伺服器的匿名使用者的密碼永不過期,並且在網路上的芳鄰中能夠找到伺服器,這樣按照你的**估計沒有問題;

  2、如果是網際網路連線,問題就複雜了,首先伺服器必須是網際網路的伺服器,並且必須設定和申請伺服器的域名,因為根據網路協議,只有伺服器有了域名才能被其他計算機訪問。另外,對於sql資料庫,估計在網際網路中需要付費的。

  上面僅僅說了一個大概,詳細情況你可以查閱有關文獻。

  vb6.0連線sql2000資料庫的具體步驟

  vb6.0使用ado物件連線資料庫:

  有償徵集原創文章,為您創收 投遞文章 減小字型 增大字型

  1. 定義連線物件global dbconnect as new adodb.connection2. 執行連線語句if dbconnect.state = adstateopen and not isempty(adstateopen) then dbconnect.

  close l 連線odbc dbconnect.connectionstring = “dsn

  1. 定義連線物件

  global dbconnect as new adodb.connection

  2. 執行連線語句

  if dbconnect.state = adstateopen and not isempty(adstateopen) then dbconnect.close

  ? 連線odbc

  dbconnect.connectionstring = “dsn=dataaliasname;uid=userid;pwd=passwd;”

  ? 直接連線access為

  dbconnect.provider = “microsoft.jet.oledb.4.0” // access 97為3.51

  dbconnect.connectionstring = “filepathfilename.mdb”

  ? 連線oracle

  dbconnect.provider = “msadora”

  dbconnect.connectionstring = “user/

  ? 連線sql server

  dbconnect.provider = “sqloledb.1”

  dbconnect.connectionstring = “database= ;server= ;uid= ;pwd= ;”

  或者可以使用 dbconnect.open “server” , “userid” , “password”

  dbconnect.open

  3. 取查詢結果集

  global rs as new adodb.recordset

  global ps as new adodb.recordset

  if rs.state = adstateopen and not isempty(adstateopen) then rs.close

  rs.open sqlstr, dbconnect, adopenkeyset

  4. 執行sql語句

  dbconn.execute sqlstr

  5. 關閉資料庫

  dbconnect.close

  vb使用ado資料庫可以分為有源資料庫和無源資料庫,即是否使用了dsn資料來源,如下例:

  1、在連線資料庫前首先要在vb選單中“工程”-“引用”從中選擇 microsoft activex data objects 2.6 library和 microsoft activex data objects recordset 2.6兩個元件,這是在連線資料前所必做的工作。

  2、接下來定義ado的連線物件,如下所示:

  set conn = new adodb.connection

  set rs = new adodb.recordset

  第一種方法採用的是無源的資料庫連線方法

  conn.connectionstring = “driver=;server=jszx3-11;uid=sa;pwd=;database=wzc”

  conn.connectiontimeout = 30

  conn.open

  rs.open “select 使用者名稱,密碼 from login where 使用者名稱='” & trim(combo1.text) & “‘ and 密碼='” & trim(text1.

  text) & “‘”, conn, adopenstatic, adlockreadonly, adcmdtext

  if rs.eof = true and rs.bof then

  m = msgbox(“請重新登入”, vbexclamation)

  text1.text = “”

  text1.setfocus

  else

  form1.hide

  end if

  rs.close

  這是第二種方法連線資料庫的方法,這一種方法是採用有源的方法與資料庫連線的方法,**如下所示:

  set conn = new adodb.connection

  set rs = new adodb.recordset

  conn.connectionstring = “dsn=login;uid=sa;pwd=;”

  conn.connectiontimeout = 30

  conn.open

  rs.open “select 使用者名稱 from login”, conn, adopenstatic, adlockreadonly, adcmdtext

  dim i as string

  for t = 0 to val(rs.recordcount) – 1

  i = trim(rs.fields(“使用者名稱”).value)

  rs.movenext

  combo1.additem i

  next t

  rs.close

  連線資料庫的方法很多很多,只要各位去勇敢的償試一下,就可以感覺資料庫的方法並不是很難,本人以前也很想做這方法的工作,只是學識不深,未能完成胸中大志,如今對這些方法的多少有一些瞭解,特意為那些初學者以供學習之用。

  資料庫的連線可通過ado控制元件實現,須在工程部件中

  選擇micrsoft ado data control6.0(oledb),然後在窗體

  中新增ado控制元件.

  利用ado連線資料庫有兩種方法,具體如下:

  1) 通過adodc屬性頁實現連線

  在adodc屬性頁中選擇生成按鈕,進入資料連結屬性對話方塊;然後選擇該對話方塊中的連線屬性頁,選擇或輸入伺服器名稱和資料庫等重要資訊;最後測試連線,連線成功後,按確定按鈕,返回到屬性頁對話方塊,可獲得連線字串,如下例:

  provider=sqloledb.1;persist security info=false;user id=sa;initial catalog=science_file;data source=data_server

  其中sa是使用者名稱;science_file是資料庫名;data_server是資料庫名。

  通過下列語句,即可連線到指定的資料庫:

  dim odbcstr as string, adocon as new adodb.connection

  odbcstr = “provider=sqloledb.1;persist security info=false;user id=sa;initial catalog=science_file;data source=data_server”

  adocon.open odbcstr ‘連線到資料庫

  2) 直接使用連線語句實現

  連線資料庫的語句如下:

  dim ado as adodc

  ado.connectionstring = “provider=sqloledb.1;password=” & user_pwd & “;persist security info=true;user id=” & user_name & “;initial catalog=” & data_name & “;data source=” & server_name

  其中user-pwd是使用者密碼;user_name是使用者名稱;data_name是資料庫名;server_name是伺服器名。

  0回答者: xiaoqinhuiyuan – 二級 2008-5-4 19:46

  我個人喜歡用第一種。比較直觀,不過第二種也較為簡單。