㈠ 如何用sqlyog實現遠程連接mysql
通過SQLyog來連接MySQL
(1)執行File→New connection菜單命令。將打開連接提示對話框。單擊New按鈕,將創建一個新的連接,給新連接定義一個名字"zyj"
㈡ 如何連接遠程SQL伺服器
首先檢查SQL資料庫伺服器中是否允許遠程鏈接。其具體操作如下:
(1)右擊SQL Server 2008選項,選擇SQL Server 2008 Management Studio:
(2)打開「伺服器屬性(Server Properties)」 (右鍵連接名稱-屬性)
選擇「允許用戶對該伺服器進行遠程鏈接」選項後,檢查是否問題已經排除。如果遠程鏈接已經成功,該過程已經完成。若用戶發現「提醒錯誤對話框」依然彈出,那麼還需要做的是:
(二)檢查SQL網路鏈接配置。其具體操作如下:
打開「SQL伺服器配置管理」選項>打開「該節點的SQL伺服器網路配置選項」>選擇「微軟SQL 伺服器網路協議」選項(或用戶的SQL伺服器中為SQL伺服器配置網路協議的選項,不同版本的SQL名稱可能不同):
設置完成後重啟sql服務(net stop mssqlserver net start mssqlserver)
確定「微軟SQL伺服器網路選項協議」中的TCP/IP協議對伺服器來說是有效的。再次檢查是否已經可以執行遠程鏈接。若「錯誤提醒對話框」依然彈出,需要進一步檢查SQL伺服器防火牆選項。
(三)檢查SQL伺服器防火牆設置 (快捷步驟-直接關閉防火牆(不安全))
如
果在進行完上兩步操作後,用戶端計算機仍然無法遠程鏈接到SQL伺服器,用戶需要做的是對SQL伺服器防火牆進行重新配置。在進行這一步操作時,首先找到
SQL伺服器上那個埠支持TCP/IP協議。用戶可以在SQL伺服器防火牆已經處於運行狀態下,點擊「TCP/IP協議」選擇「屬性」:
從
上圖中可以看出,這台SQL伺服器上支持TCP/IP協議的是1433埠。下一步要做的是在防火牆的配置中允許1433埠支持TCP/IP協議
即可。如果伺服器上運行的是Windows
7操作系統,其配置步驟為(其他微軟操作系統的做法類似),打開「控制面板」選擇「Windows防火牆」選項:
選擇「高級設置」後,在右邊菜單欄中找出「具有高級安全選項的Windows防火牆」並將其打開。打開後會發現在左邊菜單欄中有「入站規則(Inboud Rules)」選項。將該選項打開,並在右邊菜單欄中選擇「新建規則(New Rule)」選項:
打開「新建規則」選項後,利用「新內置綁定規則向導」為1433埠配置「內部綁定協議」配置為適用於TCP/IP協議即可。(前提是,需要完成該步驟以前所述的所有步驟),根據下面的幾幅圖為1433埠配置適用於1433埠即可:
以上全部都沒問題了之後打開SQL2008,輸入遠程伺服器名或IP、登錄名及密碼就可以連接到遠程伺服器上了。
㈢ 資料庫SQL怎麼遠程登錄我原來變了一個資料庫程序,現在換了台電腦編,連不上了,如過可以,資料庫代碼
首先確保能ping通
在伺服器上開啟遠程訪問並設置用戶名(默認sa)和密碼,你可以網上看如何開啟遠程訪問
客戶端要用ip或計算機名的方式訪問,不能再用localhost
㈣ 遠程連接SQL Server 的方法
遠程連接SQL Server 2000的方法
一 看ping 伺服器IP能否ping通。
這個實際上是看和遠程sql server 2000伺服器的物理連接是否存在。如果不行,請檢查網路,查看配置,當然得確保遠程sql server 2000伺服器的IP拼寫正確。
二 在Dos或命令行下輸入telnet 伺服器IP 埠,看能否連通。
如telnet 202.114.100.100 1433
通常埠值是1433,因為1433是sql server 2000的對於Tcp/IP的默認偵聽埠。如果有問題,通常這一步會出問題。通常的提示是「……無法打開連接,連接失敗"。
如果這一步有問題,應該檢查以下選項。
1 檢查遠程伺服器是否啟動了sql server 2000服務。如果沒有,則啟動。
2 檢查伺服器端有沒啟用Tcp/IP協議,因為遠程連接(通過網際網路)需要靠這個協議。檢查方法是,在伺服器上打開 開始菜單->程序->Microsoft SQL Server->伺服器網路實用工具,看啟用的協議里是否有tcp/ip協議,如果沒有,則啟用它。
3 檢查伺服器的tcp/ip埠是否配置為1433埠。仍然在伺服器網路實用工具里查看啟用協議裡面的tcp/ip的屬性,確保默認埠為1433,並且隱藏伺服器復選框沒有勾上。
事實上,如果默認埠被修改,也是可以的,但是在客戶端做telnet測試時,寫伺服器埠號時必須與伺服器配置的埠號保持一致。如果隱藏伺服器復選框被勾選,則意味著客戶端無法通過枚舉伺服器來看到這台伺服器,起到了保護的作用,但不影響連接,但是Tcp/ip協議的默認埠將被隱式修改為2433,在客戶端連接時必須作相應的改變。
4 如果伺服器端操作系統打過sp2補丁,則要對windows防火牆作一定的配置,要對它開放1433埠,通常在測試時可以直接關掉windows防火牆(其他的防火牆也關掉最好)。
5 檢查伺服器是否在1433埠偵聽。如果伺服器沒有在tcp連接的1433埠偵聽,則是連接不上的。檢查方法是在伺服器的dos或命令行下面輸入
netstat -a -n 或者是netstat -an,在結果列表裡看是否有類似 tcp 127.0.0.1 1433 listening 的項。如果沒有,則通常需要給sql server 2000打上至少sp3的補丁。其實在伺服器端啟動查詢分析器,輸入 select @@version 執行後可以看到版本號,版本號在8.0.2039以下的都需要打補丁。
如果以上都沒問題,這時你再做telnet 伺服器ip 1433 測試,將會看到屏幕一閃之後游標在左上角不停閃動。恭喜你,你馬上可以開始在企業管理器或查詢分析器連接了。
三 檢查客戶端設置
程序->Microsoft SQL Server -> 客戶端網路使用工具。像在伺服器網路實用工具里一樣,確保客戶端tcp/ip協議啟用,並且默認埠為1433(或其他埠,與伺服器端保持一致就行)。
四 在企業管理器里或查詢那分析器連接測試
企業管理器->右鍵SQlserver組->新建sqlserver注冊->下一步->寫入遠程IP->下一步->選Sqlserver登陸->下一步->寫入登陸名與密碼(sa,password)->下一步->下一步->完成
查詢分析器->文件->連接->寫入遠程IP->寫入登錄名和密碼(sa,password)->確定
通常建議在查詢分析器里做,因為默認情況下,通過企業管理器注冊另外一台SQL Server的超時設置是4秒,而查詢分析器是15秒。
修改默認連接超時的方法:
企業管理器->工具->選項->在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡->連接設置->在 登錄超時(秒) 後面的框里輸入一個較大的數字
查詢分析器->工具->選項->連接->在 登錄超時(秒) 後面的`框里輸入一個較大的數字
通常就可以連通了,如果提示錯誤,則進入下一步。
五 錯誤產生的原因通常是由於SQL Server使用了"僅 Windows"的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接。 解決方法如下所示:
1 在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL Server。
2 展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱,選擇"屬性",再選擇"安全性"選項卡。
3 在"身份驗證"下,選擇"SQL Server和 Windows "。
4 重新啟動SQL Server服務。(在dos或命令行下面net stop mssqlserver停止服務,net start mssqlserver啟動服務,也是一種快捷的方法)。
附註:在連接本地伺服器時,通常使用的是命名管道協議(在伺服器網路實用工具里可以看到啟用的協議有這個),默認埠是445,因此在本地能連通是不能說明什麼問題的,連接遠程伺服器是完全不同的協議)
;㈤ 怎麼配置sql server的遠程連接
SQL Server 2008默認是不允許遠程連接的,如果想要在本地用SSMS連接遠程伺服器上的SQL Server 2008,遠程連接資料庫。需要做兩個部分的配置:
1,SQL Server Management Studio Express(簡寫SSMS)
2,SQL Server 配置管理器/SQL Server Configuration Manager(簡寫SSCM)
1、在遠程資料庫中登錄,登錄後,右鍵選擇「屬性」。左側選擇「安全性」,選中右側的「SQL Server 和 Windows 身份驗證模式」以啟用混合登錄模式設置賬號、密碼
2、選擇「連接」,勾選「允許遠程連接此伺服器」,然後點「確定」
㈥ 請教,客戶端(固定IP)遠程訪問伺服器資料庫(SQL),基本思路是什麼(ADO方式)多謝!
1、就是直接(遠程)連接資料庫。使用SQL來操縱DB,開發程序很容易。
2、ADO是客戶端軟體訪問資料庫伺服器的一種介面協議,比ODBC強。
㈦ 如何遠程管理sql server
遠程sql server連接,可以參考如下步驟:
1
登陸SQL Server 2008(windows身份認證),登陸後右擊,選擇「屬性」。
2
左側選擇「安全性」,選中右側的「SQL Server 和 Windows 身份驗證模式」以啟用混合登錄模式。
3
選擇「連接」,勾選「允許遠程連接此伺服器」,建議將「最大並發連接數」按實際情況,進行設置,然後點「確定」。
4
展開「安全性」->「登錄名」->「sa」,右鍵選擇「屬性」。
5
左側選擇「常規」,右側選擇「SQL Server 身份驗證」,並設置密碼。
6
選擇「狀態」,選中「啟用」,點擊「確定」。
7
右擊資料庫選擇「方面」。
8
在「方面」下接列表框中,選擇「伺服器配置,「RemoteAccessEnabled」屬性和」RemotoDacEnabled」設為「True」,點「確定」。至此SSMS已設置完畢,先退出,再用sa登錄,成功即表示sa帳戶已經啟用。
9
下面開始配置Sql Server Configuration Manager (SSCM),選中左側的「SQL Server服務」,確保右側的「SQL Server」以及SQL Server Browser正在運行。
10
打開左側「SqlServer網路配置」,打開「你自己資料庫實例名的協議」,查看右側的TCP/IP默認是「已禁用」,將其修改為「已啟用」。
11
雙擊打開「TCP/IP」查看「TCP/IP屬性」下「協議」選項卡中的「全部偵聽」和「已啟用」項,是否都是設置成「是」。
12
選擇「IP Addersses」選項卡,IP1、IP2、IPAll設置TCP埠為「1433」,TCP動態埠為空值,已啟用為「是」。
13
將"客戶端協議"的"TCP/IP"也修改為「已啟用」。
14
雙擊打開右側「TCP/IP」,打開「TCP/IP屬性」,將默認埠設為「1433」,已啟用為「是」。配置完成,重新啟動SQL Server 2008。
15
最後一步,必需要防火牆上把SQL Server 的1433 TCP埠和1434 UDP埠映射出去。
㈧ 求救!!關於sql server遠程ado連接的問題
VB訪問SQL Server資料庫技術全揭密
摘 要:
本文討論了Visual Basic應用程序訪問SQL Server資料庫的幾種常用的方法,分別說明了每種方法的內部機理並給出了每種方法的一個簡單的實例,最後比較了每種方法性能和優缺點。
一、引言
SQL Server是微軟推出的中小型網路資料庫系統,是目前最常用的資料庫系統之一。隨著SQL Server網路資料庫應用程序日益增多,這種Web資料庫應用系統的正常運行一般依賴於已存在的用戶資料庫。創建維護資料庫的工作可用SQL Server提供的SQL Enterprise Manager工具來進行,如能提供一種定製的資料庫管理工具,通過管理應用程序來管理資料庫及其設備,對用戶來說無疑是最理想的。
Visual Basic作為一種面向對象的可視化編程工具,具有簡單易學,靈活方便和易於擴充的特點。而且Microsoft為其提供了與SQL Server通信的API函數集及工具集,因此它越來越多地用作大型公司數據和客戶機—伺服器應用程序的前端,與後端的Microsoft SQL Server相結合,VB能夠提供一個高性能的客戶機—伺服器方案。
二、VB訪問SQL Server數據的常用方法
使用Visual Basic作為前端開發語言,與SQL Server介面有幾種常用的方法,即:
①數據訪問對象/Jet
②為ODBC API編程
③使用SQL Server的Visual Basic庫(VBSQL)為DB庫的API編程
④RDO 遠程數據對象(RemoteData Objects)
⑤ADO 數據對象(Active Data Objects)
1、數據訪問對象/Jet
VB支持Data Access Objects(DAOs)的子集。DAO的方法雖然不是性能最好的管理客戶機—伺服器之間的對話方式,但它的確有許多優點。DAO/Jet是為了實現從VB訪問Access資料庫而開發的程序介面對象。使用DAOs訪問SQL Server的過程如下:應用程序准備好語句並送至Jet,Jet引擎(MASJT200.DLL)優化查詢,載入驅動程序管理器並與之通訊,驅動程序管理器(ODBC.DLL)通過調用驅動器(SQLSRVR.DLL)的函數,實現連接到數據源,翻譯並向SQL Server提交SQL語句且返回結果。下面是一個用DAOs訪問SQL Server的VB實例。
注釋:Form Declarations
Dim mydb As Database
Dim mydynaset As Dynaset オ
Private Sub Form_Load()
Set mydb = OpenDatabase("", False, False, "ODBC; DSN=Myserver; WSID=LCL; DATABASE = sales")
Set mydynaset = mydb CreateDynaset("Select*from Customers") オ
End Sub ァ
上述例子是以非獨占、非只讀方式打開sales資料庫,並檢索Customers表中的所有欄位。OpenDatabase函數的最後一個參數是ODBC連接字元串參數,它指明了Microsoft Access連接到SQL Server所需要知道的一些內容。其中「DSN」為數據源名,「WSID」為工作站名,「DATABASE」為所要訪問的資料庫名。
2、利用ODBC API編程
ODBC(Open Database Connectivity)的思想是訪問異種資料庫的一種可移植的方式。與數據資源對話的公用函數組裝在一個稱為驅動程序管理器(ODBC.DLL)的動態連接中。應用程序調用驅動程序管理器中的函數,而驅動程序管理器反過來通過驅動器(SQLSRVR.DLL)把它們送到伺服器中。
下面的代碼使用上面一些函數先登錄到一個伺服器資料庫,並為隨後的工作設置了語句句柄。
Global giHEnv As Long
Global giHDB As Long
Global giHStmt As Long
Dim myResult As integer
Dim myConnection As Srting
Dim myBuff As String*256
Dim myBufflen As Integer
If SQLAllocEnv(giHEnv)<>SQL_SUCCESS Then
MsgBox"Allocation couldn注釋:t happen!"
End If
If SQLAllocConnect(giHEnv,giHDB)<>SQL_SUCCESS Then
MsgBox "SQL Server couldn注釋:t connect!"
End If
myConnection="DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=sales"
myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQU IE D)
myResult=SQLAllocStmt(giHDS,giHStmt)
myResult=SQLFreeStmt(giHStmt,SQL_COLSE)
rsSQL="Select * from Customers Where City = "Hunan""
myResult = SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))
3、使用VBSQL對DB庫API編程
DB庫是SQL Server的本地API,SQL Server的Visual Basic庫(VBSQL)為Visual Basic程序員提供API。從一定意義上說,VBSQL是連接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下三個文件:
VBSQL.VBX: 包含庫函數,具有訪問重要的消息和處理錯誤的能力
VBSQL.BI:包括所有的常量和變數說明
VBSQL.HLP:Windows幫助文件,使用VBSQL的指南
使用VBSQL時,必須將VBSQL.BI加入到Visual Basic工程文件中,並確保VB程序運行時有VBSQL.VBX文件。
一般的DB庫API編程的過程是這樣的:先通過調用SqlInit對DB庫進行初始化,再調用SqlConnection打開一個連接,然後就可做一些工作。下面的代碼是一個初始化DB庫並登錄到伺服器的通用常式。
Private Sub InitializeApplication()
DBLIB_VERSION=SqlInit()
If DBLIB_VERSION=""Then
MsgBox"Could not initialize DBLIB!Exit application.", MB_ICONEXCLAMATION
End If
End Sub
Private Function LoginToServer() As integer
loginToServer=SUCCEED
Status%=SqlSetloginTime%(loginTimeOut)
If giSqlConn<>0 Then
SqlClose(giSqlConn) 注釋:關閉已打開的連接
giSqlConn=SqlOpenConnection(gsServerName, gsLoginID, gsPassword, ProgramName, ProgramName)
If giSqlConn<>0 Then
liresuit=SqlUse(giSqlConn,"Sales")
Else
LogintoServer=FAIL
End If
End Function
4、RDO 遠程數據對象(RemoteData Objects)
要討論RDO,就必然要談到DAO。RDO是從DAO派生出來的,但兩者很大的不同在於其資料庫模式。DAO是針對[記錄(Records)]和[欄位( Fields)],而RDO是作為[行(Rows)]和[列(Columns)]來處理。也就是說DAO 是ISAM模式,RDO是關系模式。此外DAO是訪問Access的Jet引擎(Jet是ISAM)的介面,而RDO則是訪問ODBC的介面。
可見,RDO是綜合了DAO/Jet、VBSQL/DBLib以及ODBC的優點的對象(Object)。需要強調的是,RDO是包裹著ODBC API的一層薄薄的外殼, 被設計成在後台(伺服器端)有資料庫存在的前提下運行,同時也是針對SQL Server和Oracle而特別設計的。
RDO的優勢在於它完全被集成在VB之中。此外,直接訪問SQL Server存儲過程、完全支持T-SQL、T-SQL調試集成在開發環境中、Visual Database Tools的集成化等,也是RDO的長處。
在RDO的對象和集合中,有很多對資料庫的狀態和設定進行操作的屬性(Property),以及對資料庫進行操作的方法(Method)。利用這些,從RDO2.0起就可以開發事件驅動的資料庫應用程序。
RDO對象與VB中其他對象的概念相同。與VB用的ActiveX控制項(以往稱為Custom Control或OCX、VBX)相似的是,RDO也帶有屬性和方法;但同Spread、InputMan等普遍應用的ActiveX控制項不同的是,RDO沒有自己的用戶界面,因而可以和VB標準的Timer控制項歸為同一類。當然也可以將RDO看作調用ODBC API函數,進而對後台資料庫操作加以控制的對象。在RDO的屬性和方法中,包含了對單個的ODBC API函數以及一連串API函數的調用。
①rdoEngine對象
最初調用RDO對象以及RDC(遠程數據控制項)時,自動生成rdoEngine對象的附帶事件(incident)。rdoEngine用於對RDO全局屬性的參數、選項進行設置,是在RDO的階層結構內處於最上層的對象,包含了所有的其他對象。
rdoEngine對象與DAO/Jet不同,雖然被多個應用程序共享,但體現rdoEngine對象的設定值的屬性卻並不共用,而是在各自的應用程序的程序界面中對其分別加以設定。這些設定值對其他使用RDO以及RDC的應用程序沒有任何影響。rdoEngine不是集合的要素,而是重新定義的對象,rdoEngine對象不能被追加作成對象屬性的初值。
②rdoEnvironment對象
RDO對象在自動創建rdoEngine對象時,將rdoEnviroment對象的初始值生成並保存為rdoEnviroments(0)。一般情況下,應用程序中不必追加rdoEnvironment對象,大多隻需對已有的rdoEnviroments(0)進行操作就可以了。只有在支持一個以上事務(Transaction),需要將用戶名和口令信息分別處理的情況下,利用rdoCreateEnvironment方法將特定的用戶名和口令值做成新的rdoEnvironment對象。在這個方法中可以指定固有名、用戶名和口令,如果所指定的值與rdoEnvironments集合的已經存在的成員名稱相同,會產生錯誤。新建的rdoEnvironment對象自動追加在rdoEnvironments集合的最後。調rdoCreateEnvironment方法時,其name參數可以是長度為0的文字列,這時新的rdoEnvironment對象將不會被追加在rdoEnvironments集合之中。
③rdoConnection對象
rdoConnection對象用於同SQL Server的連接管理。
下面是與SQL Server連接的例子。
用OpenConnection方法的一個實例。
設定的DSN為MyDSN:
Dim Cn As rdoConnection
Dim En As rdoEnvironment
Dim Conn As String
Conn = "DSN = MyDSN; UID = Jacob;" & "PWD = 123456; DATA BASE = MyDb;"
Set Cn= En.OpenConnection("", rdDriverPrompt, False, Co nn)
Set Cn= En.OpenConnection(Prompt:= rdDriverPrompt, Rea dOnly:= False,Connect:= Cnn)
用EstablishConnection方法的一個實例。
這里以獨立的rdoConnection對象為例說明與SQL Server的連接。
Public WithEvents Eng As rdoEngine
Public WithEvents Cn As rdoConnection
Private Sub Form_Load()
Set Eng = New rdoEngine
Set Cn = New rdoConnection
With Cn
.Connect = "UID = ; PWD = ;" & "DATABASE = pubs; DSN = biblio"
.LoginTimeout = 5
.EstablishConnection rdoDriverNoPromt, True, rdAsyncEna ble
End With
End Sub
在這個例子中,Form_Load函數對rdoEngine和rdoConnection對象進行初始化。這里有一點需要注意,rdoConnection對象是處於獨立的狀態之下,即使是處於未連接狀態也可以設置屬性的值。接下來是rdoConnect對象的事件處理程序。從RDO 2.0起可以實現非同步方式(rdAsyn cEnable),EstablishConnection就設定為該值。在非同步狀態下,不必等待與資料庫的連接,程序可以迅速從Form_Load 函數中退出。 然後是BeforeConnect事件,該處理在與資料庫的連接開始以前被激發,此時不能進行有關終止連接的操作:
Private Sub Cn_BeforeConnect(ConnetString As String, Pro mpt As Variant)
MsgBox "正在連接" & ConnectString, vbOKOnly, "連接前"
End Sub
連接完成之後的事件處理:
Private Sub Cn_Connect(ByVal ErrorOccurred As Boolean)
Dim M As String
If ErrorOccurred Then
For Each er In rdoErrors
M = M & er & vbCrLf & M
Next
MsgBox "連接失敗" & vbCrLf & M
Else
MsgBox "連接成功"
注釋:這是確認連接狀態的測試代碼
Cn.Excute "use pubs"
End Sub
RDO連接處理結束後,在該事件中確認連接成功與否。連接成功的情況下ErrorOccurred返回False,失敗時為True,由此可以對rdoErrors集合進行檢測:
Private Sub Eng_InfoMessage()
For Each er In rdoErrors
Debug.Print er
Next
RdoErrors.Clear
End Sub
不能與SQL Server連接的原因多種多樣,有可能是由於對資料庫的訪問許可權、網路連接問題、資料庫表的信息錯誤、SQL Server同時連接的許可數、資源不足等等,具體情況需要與網路管理員商量。 斷開連接的操作非常簡單,但又很重要,因為RDO不提供自動斷開的功能。
Cn.Close
Set Cn = Nothing 注釋:釋放對象所佔的內存資源
En.Close
Set En = Nothing 注釋:釋放對象所佔的內存資源
VB是對象語言,Form、ActiveX控制項也都是對象。使用對象後必須養成將對象設為Nothing把它從內存中釋放的編程習慣。這樣可以預防很多不可預測錯誤,往往程序中發生原因不明的錯誤時,其原因就在於此。
5、ADO 數據對象(Active Data Objects)
ADO是基於全新的OLE DB技術,OLE DB可對電子郵件、文本文件、復合文件、數據表等各種各樣的數據通過統一的介面進行存取。隨著ActiveX控制項的升級(Windows 98的ActiveX 5.0),RDO將被以ActiveX技術為基礎的ADO介面所替代。下面將介紹基於ActiveX技術的ADO訪問SQL Server 6.5資料庫的技術和方法。基於瀏覽器的ADO介面常用函數如下:
(1)取當前的工作資料庫
由於管理任務一般都必須在Master庫中完成,因此在執行管理任務之前,最好保存當前工作庫,以便完成任務之後再切換回原來的任務。
Public Function SQLGetCurrentDatabaseName(Cn As ADODB.Connection) As String
Dim sSQL As String
Dim RS As New ADODB.Recordset
On Error GoTo errSQLGetCurrentDatabaseName
sSQL="select CurrentDB=DB_NAME ( )"
RS.Open sSQL, Cn
SQLGetCurrentDatabaseName=Trim $ (RS! CurrentDB)
RS.Close
Exit Function
errSQLGetCurrentDatabaseName:
SQLGetCurrentDatabaseName=" "
End Function
(2)取SQL Server安裝目錄下的DATA子目錄路徑
取SQL Server的設備文件預設目錄,返回如D:MSSQL DATA。
Public Function SQLGetDataPath(Cn As ADODB.Connection) As String
Dim sSQL As String
Dim RS As New ADODB.Recordset
Dim sFullPath As String
On Error GoTo errSQLGetDataPath
sSQL="select phyname from master..sysdevices where name=注釋:master注釋: "
RS.Open sSQL, Cn
sFullPath = RS! phyname
RS.Close
SQLGetDataPath=Left $ (sFullPath, Len(sFullPath) -10) 注釋:MASTER.DAT的大小
Exit Function
errSQLGetDataPath:
SQLGetDataPath=" "
End Function
(3)創建一個新資料庫
Public Function SQLCreateDatabase65 (Cn As ADODB.Connection,sDBName As String, sDataDeviceName As String, nDataSize As Integer, Optional sLogDeviceName, Optional nLogSize) As Boolean
Dim sSQL As String
On Error GoTo errSQLCreateDatabase65
Dim sDB As String
sDB =SQLGetCurrentDatabaseName(Cn)
sSQL = "USE master"
Cn.Execute sSQL
sSQL ="CREATE DATABASE" & sDBName
sSQL = sSQL &" ON " & sDataDeviceName & "=" & nDataSize
If Not IsMissing(sLogDeviceName) And Not IsMissing(nLogSize) Then
sSQL = sSQL & "LOG ON" & sLogDeviceName & "="& nLogSize
End If
Cn.Execute sSQL
sSQL = "USE" & sDB
Cn.Execute sSQL
SQLCreateDatabase65 = True
Exit Function
errSQLCreateDatabase65:
On Error Resume Next
sSQL = "USE " & sDB
Cn.Execute sSQL
SQLCreateDatabase65 = False
End Function
(4)判斷一個資料庫是否存在
Public Function SQLExistDatabase(Cn As ADODB.Connection, sDBName As String) As Boolean
Dim sSQL As String
Dim RS As New ADODB.Recordset
Dim bTmp As Boolean
on Error GoTo errSQLExistDatabase
sSQL = "select CntDB = count ( * ) "
sSQL = sSQL & "From master.dbo.sysdatabases"
sSQL = sSQL & "Where name = 注釋: "& sDBName & " 注釋: "
RS.Open sSQL, Cn
If RS! CntDB = 0 Then bTmp = False Else bTmp = True
RS.Close
SQLExistDatabase = bTmp
Exit Function
errSQLExistDatabase:
SQLExistDatabase = False
Exit Function
End Function
(5)刪除一個資料庫
Public Function SQLDropDatabase (Cn As ADODB.Connection, sDBName As String) As Boolean
Dim sSQL As String
On Error GoTo errSQLDropDatabase
If Not SQLExistDatabase(Cn, sDBName) Then
SQLDropDatabase = True
Exit Function
End If
Dim sDB As String
sDB = SQLGetCurrentDatabaseName(Cn)
sSQL = "Use master"
Cn.Execute sSQL
sSQL = "DROP DATABASE " & sDBName
Cn.Execute sSQL
sSQL = "USE " & sDB
Cn.Execute sSQL
SQLDropDatabase = True
Exit Function
errSQLDropDatabase:
On Error Resume Next
sSQL = "USE " & sDB
Cn.Execute sSQL
SQLDropDatabase = False
End Function
三、性能比較及應用說明
用VB開發基於SQL Server的資料庫系統,以上幾種訪問SQL Server的方法各有各的特點。DAOs方法是基於對象的,因而便於使用,但是它是從Visual Basic到SQL Server最慢的連接方式。ODBC API和VBSQL方法從本質上講是基於程序的。ODBC API方法通用性好,允許最強的互操作性,編程簡單,但速度慢於VBSQL方法。VBSQL方法通過VBSQL控制項,提供了重要的SQL Server前端應用程序所需的靈活性、強大功能和良好性能。它具有真正的事件驅動及錯誤處理能力,完全支持非同步處理、游標和計算列等。這些都是VBSQL方法超出其它方法的優勢,但其編程稍復雜。RDO是位於ODBC API之上的一個對象模型層,它依賴ODBC API、ODBC驅動程序以及後端資料庫引擎來實現,用RDO所需的程序短小(約250 KB)、快速。RDO具備基本的ODBC處理方法,可直接執行大多數ODBC API函數,RDO包含在VB 4.0/VB 5.0企業版中,由MSRDO32.DLL動態連接庫來實現。RDO是綜合了DAO/Jet、VBSQL/DBLib和ODBC的優點的對象模型,包含ODBC API應用層,設計為在後台(伺服器端)有資料庫存在的前提下運行,是針對SQL Server和Oracle而特別設計的。RDO的優勢在於它完全被集成在VB之中,可直接訪問SQL Server存儲過程、完全支持T-SQL、T-SQL調試集成在開發環境中、Visual Database Tools的集成化等。但微軟已宣布今後不再對VBSQL/DBLib進行升級,而ODBC API函數一般的編程方式也不為人們所喜愛,RDO的應用將逐漸減少。至於實際使用哪一種介面方式,在很大程度上依賴於用戶的應用程序的具體情況而定。
四、VisualBasic訪問資料庫的前景
近來隨著Web應用軟體的迅速發展和現有數據存儲形式的多種多樣,Visual Basic訪問資料庫的解決方案面臨諸如快速提取分布於企業內部和外部有用商業信息等的多種挑戰。為此Microsoft提出一種新的資料庫訪問策略,即「統一數據訪問」(UniversalDataAccess)的策略。「統一數據訪問」提供了高性能的存取包括關系型和非關系型在內的多種數據源,提供獨立於開發工具和開發語言的簡單的編程介面,這些技術使得企業集成多種數據源、選擇更好的開發工具、應用軟體、操作平台、建立容易維護的解決方案成為可能。
「統一數據訪問」的基礎是Microsoft的數據訪問組件。這些組件包括ActiveXDataObjects(ADO)、RemoteDataService(RDS,也稱「高級數據連接器或」ADC)、OLEDB和ODBC。
回答者
㈨ SQL如何遠程連接
sql 默認埠1433
主機名稱填寫遠程虛擬機。
㈩ 如何設置遠程訪問SQL Server2005
默認情況下,SQL Server 2005 Express Edition 和 SQL Server 2005 開發人員版不允許遠程連接。
若要配置 SQL Server 2005,以允許遠程連接,必須完成下列步驟:
•啟用遠程連接,您想要從遠程計算機連接到的 SQL Server 的實例上。
•打開 SQL Server 瀏覽器服務。
•配置防火牆以允許 SQL Server 和 SQL Server 瀏覽器服務相關的網路流量。
更多信息參考下面文檔:http://support.microsoft.com/zh-cn/kb/914277