❶ SQL Server如何在一個資料庫的多個表或多個資料庫的多個表中查找內容
同庫操作
select a.列名1,b.列名2,a.列名3 from 表名1 as a
join 表名2 as b
on a.關聯欄位=b.關聯欄位不同庫操作
select a.列名1,b.列名2,a.列名3 from 庫名1.dbo.表名1 as a
join 庫名2.dbo.表名2 as b
on a.關聯欄位=b.關聯欄位2張表以上的多表連接:先兩張連接再與第三張連接,依次下去,如
select a.列名1,b.列名2,a.列名3 from 表名1 as a
join 表名2 as b
on a.關聯欄位=b.關聯欄位
join 表名3 as c
on a.關聯欄位=c.關聯欄位
❷ Provider=SQLOLEDB.1
strerror = Err.Description
Set CN = Nothing
Set rs = Nothing
Set GetRecordset = Nothing
End Function
Public Function ExcuteCmd(strSQL As String) As Boolean '執行無返回的SQL語句
On Error GoTo ErrorHandler
Dim CN As ADODB.Connection
Dim CMD As New ADODB.Command
Set CN = Connect()
If (CN Is Nothing) Then
GoTo ErrorHandler
End If
CMD.ActiveConnection = CN
CMD.CommandText = strSQL
CMD.CommandType = adCmdText
CMD.Execute
ExcuteCmd = True
Set CN = Nothing
Set CMD = Nothing
Exit Function
ErrorHandler:
ExcuteCmd = False
strerror = Err.Description
Set CN = Nothing
Set CMD = Nothing
End Function
問題補充:
非常感謝二位提供的代碼.我用"有始有終"朋友的代碼.基本實現了SQL資料庫的連接,但我還想請教一下.
用你的QueryExt函數返回資料庫後,是不是沒有斷開與資料庫的連接?如果在多用戶系統上,這樣一直連接著資料庫,是否會存在資料庫負荷問題?
請加我的QQ:2303507
希望在以後能得到你們的幫助!
提問時間: 2006-06-15 21:36:59
回答:有始有終
學長
6月16日 11:38 '數據源信息常量
Public Const conn As String = "Provider=SQLOLEDB.1;Password=sa;User ID=sa;Initial Catalog=StudentFiles;Data Source=localhost;"
'一次執行connect操作可以訪問資料庫的次數
Public Const CONNECT_LOOP_MAX = 10
'== 標記資料庫是否連接 ==
Private IsConnect As Boolean
'== 標記執行Connect()函數後,訪問資料庫的次數 ==
Private Connect_Num As Integer
Private cnn As ADODB.Connection '連接資料庫的Connection對象
Private rs As ADODB.Recordset '保存結果集的Recordset對象
'連接資料庫
Private Sub Connect()
'如果連接標記為真,則返回。否則會出錯
If IsConnect = True Then
Exit Sub
End If
'關鍵New用於創建新對象cnn
Set cnn = New ADODB.Connection
'設置連接字元串ConnectionString屬性
cnn.ConnectionString = conn
'打開到資料庫的連接
cnn.Open
'判斷連接的狀態
If cnn.State <> adStateOpen Then
'如果連接不成功,則顯示提示信息,退出程序
MsgBox "資料庫連接失敗"
End
End If
'設置連接標記,表示已經連接到資料庫
IsConnect = True
End Sub
'斷開與資料庫的連接
Private Sub Disconnect()
Dim Rc As Long
'如果連接標記為假,標明已經斷開連接,則直接返回
If IsConnect = False Then
Exit Sub
End If
'關閉連接
cnn.Close
'釋放cnn
Set cnn = Nothing
'設置連接標記,表示已經斷開與資料庫的連接
IsConnect = False
End Sub
'使用Connect_Num控制資料庫連接
Public Sub DB_Connect()
Connect_Num = Connect_Num + 1
Connect
End Sub
Public Sub DB_Disconnect()
If Connect_Num >= CONNECT_LOOP_MAX Then
Connect_Num = 0
Disconnect
End If
End Sub
'強制關閉api方式訪問的資料庫,計數器復位
Public Sub DBapi_Disconnect()
Connect_Num = 0
Disconnect
End Sub
'執行資料庫操作語句
Public Sub SQLExt(ByVal TmpSQLstmt As String)
'創建Command對象cmd
Dim cmd As New ADODB.Command
'連接到資料庫
DB_Connect
'設置cmd的ActiveConnection屬性,指定與其關聯的資料庫連接
Set cmd.ActiveConnection = cnn
'設置要執行的命令文本
cmd.CommandText = TmpSQLstmt
' MsgBox TmpSQLstmt
'執行命令
cmd.Execute
'清空cmd對象
Set cmd = Nothing
'斷開與資料庫的連接
DB_Disconnect
End Sub
'執行資料庫查詢語句
Public Function QueryExt(ByVal TmpSQLstmt As String) As ADODB.Recordset
'創建Recordset對象rst
Dim rst As New ADODB.Recordset
'連接到資料庫
DB_Connect
'設置rst的ActiveConnection屬性,指定與其關聯的資料庫連接
Set rst.ActiveConnection = cnn
'設置游標類型
rst.CursorType = adOpenDynamic
'設置鎖定類型
rst.LockType = adLockOptimistic
'打開記錄集
rst.Open TmpSQLstmt
'返回記錄集
Set QueryExt = rst
End Function