用vb编写ADO控件对本地sql数据库进行操作,100分送!
我在作毕业设计,是用vb编写一个ADO控件(.dll)对本地sql数据库进行各种操作,谁能提供一个详细的例子供我参考一下,小弟万分感谢!
不一定是控件,是一个完整程序也可以,谢谢!
问题点数:100、回复次数:11Top
1 楼ferrytang(欢迎你)回复于 2002-03-22 15:01:26 得分 0
www.21code.com
源代码多多Top
2 楼haisland(海是蓝的)回复于 2002-03-22 15:02:30 得分 40
控件没有,程序可以给你一个,e-mailTop
3 楼hhdsq(流氓宝宝)回复于 2002-03-22 15:02:45 得分 0
CSDN上也不少啊,你不会找不着吧?Top
4 楼VB_support(爱上有夫之妇)回复于 2002-03-22 15:07:56 得分 0
Public Function GetDBList() As Object '方法:获得数据表,指定数据库
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
strDatabaseUserName = "Sa"
strDatabasePassword = ""
strDatabaseUserName = "local"
cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + strDatabaseUserName + ";Password=" + strDatabasePassword + ";Initial Catalog=master;Data Source=" & strDatabaseServer
rst.Open "select * from sysdatabases", cnn
Set GetDBList = rst
End Function
cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + strDatabaseUserName + ";Password=" + strDatabasePassword + ";Initial Catalog=master;Data Source=" & strDatabaseServer
rst.Open "select * from sysdatabases", cnn
Set GetDBList = rst
end function
这是对数据库的初始连接
后面就可以用ado进行操作了
不多说了
自己研究吧Top
5 楼inforum(诚实做人 勤奋做事)回复于 2002-03-22 15:11:23 得分 0
用Google搜索一下定有一大片。Top
6 楼randysweet(小羊)回复于 2002-03-22 16:41:47 得分 0
我的email
randysweet@sohu.comTop
7 楼charise(黑码)回复于 2002-03-22 16:57:07 得分 0
www.51mis.comTop
8 楼TNT1900(不顶事)回复于 2002-04-04 14:35:32 得分 20
1、首先声明:
Global Const G_ADO_ConStr As String = _
"Provider=SQLOLEDB.1;User ID=User_XXX;Password=xxx;Persist Security Info=False;Initial Catalog=HR_MIS;Data Source=XXX-SERVER"
2、然后写程序,如:
Public Function GetDepByOptn( _
Optional iOrder As Integer = 1, _
Optional ID As Integer, _
Optional Name As String, _
Optional ParentID As Integer, _
Optional ChildID As Integer _
) As ADODB.Recordset
On Error GoTo ErrorProcess
Dim strSql As String
Dim strWhereOrAnd As String
Dim Conn As ADODB.Connection
Dim p_RS As ADODB.Recordset
m_SuccessOrNot = False
'' Open ADO connection
Set Conn = New ADODB.Connection
Set p_RS = New ADODB.Recordset
'' Build SQL statement
strSql = "SELECT * FROM T_Department "
'' ID 条件组合
If ID <> 0 Then
strSql = strSql & cStrWhereOrAnd(strSql) & " ID = " & ID & " "
End If
'' Name 条件组合
If Name <> "" Then
strSql = strSql & cStrWhereOrAnd(strSql) & " Name like '%" & Name & "%' "
End If
'' ParentID 条件组合
If ParentID <> 0 Then
strSql = strSql & cStrWhereOrAnd(strSql) & " ParentID = " & ParentID & " "
End If
'' ChildID 条件组合
If ChildID <> 0 Then
strSql = strSql & cStrWhereOrAnd(strSql) & " ChildID = " & ChildID & " "
End If
'' 结果集排列顺序
Select Case iOrder
'' Order By EmpID, ID
Case 1
strSql = strSql & "Order by NAME,ID,PARENTID,CHILDID"
Case Else
strSql = strSql & "Order by ID,NAME,PARENTID,CHILDID"
End Select
'' Open the Connection
Conn.Open G_ADO_ConStr
'' Open the recordset
p_RS.Open strSql, Conn, adOpenStatic
Set GetDepByOptn = p_RS
m_SuccessOrNot = True '' Success Flag
Exit Function
ErrorProcess:
Err.Raise Err.Number & Err.Source
Set GetDepByOptn = Nothing
m_SuccessOrNot = False '' False flag
End Function
Top
9 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-04 14:47:09 得分 20
Public adoCN As New ADODB.Connection '定义数据库的连接存放数据和代码
Public adoCNAccess As New ADODB.Connection '定义数据库的连接存放数据和代码
Public adoCNAccess1 As New ADODB.Connection '定义数据库的连接存放数据和代码
Public adoCNtemp As New ADODB.Connection '临时数据库
Public SqlCommand As New ADODB.Command '定义 SQL 命令
Public RsUsers As New ADODB.Recordset
Public RsDept As New ADODB.Recordset
Public Rs_Dm_Level As New ADODB.Recordset
Dim adoDateTime As New ADODB.Recordset '获取 NT-SERVER 时间
'***********************************************************************
'* 功能:与 SQL SERVER 数据库建立连接并取出服务器时间
'***********************************************************************
Public Function OpenConnection1() As String '打开数据库
End Function
Public Function OpenConnection() As String '打开数据库
On Error GoTo SQLConErr
With adoCN
.CursorLocation = adUseClient
.Provider = "sqloledb"
.Properties("Data Source").Value = cNtServerName
.Properties("Initial Catalog").Value = cDatabaseName
.Properties("User ID") = cSQLUserName
.Properties("Password") = cSQLPassword
.Properties("prompt") = adPromptNever
.ConnectionTimeout = 15
.Open
If .State = adStateOpen Then
adoDateTime.Open "select getdate()", adoCN, adOpenStatic, adLockOptimistic
cServerDate = Format(adoDateTime(0), "yyyy-mm-dd")
cServertime = Mid(adoDateTime(0), 10)
Else
MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
End
End If
End With
SqlCommand.ActiveConnection = adoCN
SqlCommand.CommandType = adCmdText
Exit Function
SQLConErr:
Select Case Err.Number
Case -2147467259
MsgBox "找不到指定的SQL Server服务器或者数据库不存在,请重新设置!", vbExclamation
F_SetSystem.Show 1
Case -2147217843
MsgBox "指定的SQL Server数据库用户不存在或口令错误,请重新设置!", vbExclamation
F_SetSystem.Show 1
Case Else
MsgBox "数据环境连接失败,请找系统管理员进行检查 !", 16, cProgramName
End Select
OpenConnection
End Function
'***********************************************************************
'* 功能:连接数据报表环境
'*
'***********************************************************************
Public Sub OpenDEConnection() '连接数据环境
On Error GoTo DEConErr
With DE_Report.Con_report
If .State = adStateOpen Then
.Close
End If
.CursorLocation = adUseClient
.ConnectionTimeout = 15
.ConnectionString = "Provider=SQLOLEDB.1;Password=" & cSQLPassword & ";Persist Security Info=True;User ID=" & cSQLUserName & ";Initial Catalog=" & cDatabaseName & ";Data Source=" & cNtServerName
.Open
End With
Exit Sub
DEConErr:
Select Case Err.Number
Case Else
MsgBox "数据环境连接失败,请找系统管理员进行检查 !", 16, cProgramName
End
End Select
End Sub
Public Function OpenAccess() As String
With adoCNAccess
If .State <> adStateOpen Then
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & cProgramPath & "Trade.mdb" ';password=allway"
.ConnectionTimeout = 5
.Open
If .State = adStateOpen Then
OpenAccess = "数据库连接成功"
Else
OpenAccess = "数据库连接失败,请按帮助进行检查 !"
MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
End
End If
End If
End With
End Function
Top
10 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-04 14:48:00 得分 20
Public Sub Jc_Shhy_Open()
'业务员合同
With Rs_Jc_Shhy
If .State = adStateOpen Then
.Close
End If
.ActiveConnection = adoCN
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockBatchOptimistic
'.Source = "SELECT d.deptcode,d.deptname,u.staffname,j.* FROM Dm_Dept d,Dm_Users u,Jc_Shhy j WHERE j.staffcode=u.staffcode and u.deptcode=d.deptcode and j.staffcode='" & cStaffCode & "'"
.Source = "SELECT * FROM Jc_Shhy WHERE sqr='" & cStaffCode & "'"
.Open
End With
'公司合同
With Rs_Jc_Shhy_Find
If .State = adStateOpen Then
.Close
End If
.ActiveConnection = adoCN
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockBatchOptimistic
.Source = "SELECT d.deptcode, f.staffcode, j.hth FROM Dm_Dept d, dm_users f, Jc_Shhy j WHERE j.staffcode = f.staffcode AND d.deptcode = f.deptcode "
.Open
End With
End Sub
Top
11 楼llpei(骑着王八看大海)回复于 2002-04-04 14:50:46 得分 0
Public Sub OpenX()
Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
Dim varDate As Variant
' 打开连接。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set cnn1 = New ADODB.Connection
cnn1.Open strCnn
' 打开雇员表。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable
' 将第一个雇员记录的受雇日期赋值给变量,然后更改受雇日期。
varDate = rstEmployees!hire_date
Debug.Print "Original data"
Debug.Print " Name - Hire Date"
Debug.Print " " & rstEmployees!fName & " " & _
rstEmployees!lName & " - " & rstEmployees!hire_date
rstEmployees!hire_date = #1/1/1900#
rstEmployees.Update
Debug.Print "Changed data"
Debug.Print " Name - Hire Date"
Debug.Print " " & rstEmployees!fName & " " & _
rstEmployees!lName & " - " & rstEmployees!hire_date
' 再查询 Recordset 并重置受雇日期。
rstEmployees.Requery
rstEmployees!hire_date = varDate
rstEmployees.Update
Debug.Print "Data after reset"
Debug.Print " Name - Hire Date"
Debug.Print " " & rstEmployees!fName & " " & _
rstEmployees!lName & " - " & rstEmployees!hire_date
rstEmployees.Close
cnn1.Close
End Sub
Top




