最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

数据库的建立与链接问题

来源:动视网 责编:小采 时间:2020-11-09 09:10:16
文档

数据库的建立与链接问题

数据库的建立与链接问题: 做完学生管理系统,经过师傅的验收,发现对最初的概念了解相当不深刻!又反过头对5实例简单看了一下,老师常说,学习最重要的是反复,通过这次观看,重新对基本概念有所了解。首先看几个专业名词:ADO---activex data object动态数据对象通过OLE DB(
推荐度:
导读数据库的建立与链接问题: 做完学生管理系统,经过师傅的验收,发现对最初的概念了解相当不深刻!又反过头对5实例简单看了一下,老师常说,学习最重要的是反复,通过这次观看,重新对基本概念有所了解。首先看几个专业名词:ADO---activex data object动态数据对象通过OLE DB(


做完学生管理系统,经过师傅的验收,发现对最初的概念了解相当不深刻!又反过头对5实例简单看了一下,老师常说,学习最重要的是反复,通过这次观看,重新对基本概念有所了解。

首先看几个专业名词:ADO---activex data object动态数据对象通过OLE DB(object linking and embed中文:对象连接与嵌入,是底端程序接口)实现对不同数据的访问。

当时师傅问我关于ADO的对象时,一下子懵了,原来我们在建立数据库定义的connection,recordset等都是ado 的对象,它共有7个对象,在这次的学生信息管理系统中最常见的就是上面那俩,3个独立对象:recordset,connection,command!还有4个附属对象:field,parameter,property,error

OLE DB由3个部分组成:数据提供者,数据消费者,服务组件。数据提供者是类似于SQL Serser,ODBC提供数据的程序,VB创建的程序就是一种典型的数据消费者,它是利用数据提供者提供的数据创建的数据应用程序。服务组件负责连接数据提供者与数据消费者。

五实例当中应用了vb外界程序的可视化管理器建立的micrsoft access数据库(其文件后缀名为.mdb),而学生信息管理系统的数据库是利用SQL Sever创建的(后缀名为.sql),数据库类的应用程序第一步是建立数据库!第二步,建立ADO引用,在vb程序里直接点击工程下的引用选择microsoft activex data objects 2.6 library即可!第三步,用代码建立连接。下面让我们看一下数据库的不同连接方式对比:

1.直接连接access数据库

dim Objcn as new connection,objRs as new recordset
objcn.connectionstring="Prvider=Microsoft.jet.OLEDB.3.5.1;" & _
"data sourse=数据远文件路径" '连接数据提供者与数据源
objcn.open
 strSQL=“select ……from …… where……”
set objrs.activeconnection=objcn '将数据库记录集与数据源相匹配
objrs.open(strSQL) '记录集打开
 . ‘进行数据库的增删改查操作
objcn.close ‘关闭数据库
set objrs=Nothing
set objcn=Nothing

2. 利用ODBC连接access数据库,ODBC有3种数据源连接方式,分别为用户DNS,系统DNS,文件DNS,学生信息管理系统利用的正是文件DNS的添加。

set objcn=new connection
objcn.open="dsn=数据库文件名"
set objrs=new recordset
 .
objcn.close
set objrs=nothing
set objcn=nothing

3.利用ado data控件创建数据库连接,这种方法相对简单,只要从控件属性里面进行连接即可。

看完了5实例的连接方法,解析一下对学生管理系统连接于登陆时的代码:

1.在登陆窗体中,为走向专业化,往往数据库的登录名设置为系统用户名,所以在登陆窗体的用户名部分自动获得系统用户,在开头部分调用API函数:

Private Declare Function GetUsername Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

窗体加载部分获得系统用户名:

Private Sub Form_Load()
 Dim sbuffer As String
 Dim lsize As Long
 
 sbuffer = Space$(255) '因无法确定系统用户名的长度,先开辟一个255(最大值)空格字符控件
 lsize = Len(sbuffer) 'lsize盛放sbuffer字符串的真是长度
 Call GetUsername(sbuffer, lsize) 
 'api中字符串作函数,需要提前确定大小
 
 If lsize > 0 Then
 txtusername.Text = Left$(sbuffer, lsize)
 Else
 txtusername.Text = vbNullString
 '没有字符串
 End If
 
 ok = False
 micount = 0 ’用于登陆次数的标记
 End Sub

2.在确认按钮中建立连接:

Private Sub cmdOK_Click()
 Dim txtSQL As String
 Dim mrc As ADODB.Recordset '用于保存数据源记录集
 Dim MsgText As String
 
 UserName = "" '先将登录名滞空
 If Trim(txtusername.Text = "") Then '确认用户名输入框不为空
 MsgBox "没有这个用户,请重新输入用户", vbOKOnly + vbExclamation, "警告"
 txtusername.SetFocus
 Else
 txtSQL = "select * from user_info where user_id ='" & txtusername.Text & "'"
 Set mrc = ExecuteSQL(txtSQL, MsgText) '
 调用模块当中的executesql函数
建立数据库连接
 If mrc.EOF Then
 MsgBox "没有这个用
户,请重新输入用户", vbOKOnly + vbExclamation, "警告"
 txtusername.SetFocus
 Else '确认密码
 If Trim(mrc.Fields(1)) = Trim(txtpassword.Text) Then
 ok = True
 mrc.Close
 Me.Hide
 UserName = Trim(txtusername.Text)
 frmmain.Show
 Else
 MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
 txtpassword.SetFocus
 txtpassword.Text = ""
 End If
 End If
 End If
 
 micount = micount + 1 '值允许3次输入
 If micount = 3 Then
 Me.Hide
 End If
 Exit Sub
 
End Sub

3.理解一下执行函数excutesql函数的连接方式。

Public Function ConnectString() As String
 ConnectString = "FileDSN=student.dsn;UID=sa;PWD=123" '文件源,登录名,验证密码
End Function
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) '该函数定义将sql语句中的词以空格为分解符分解开放进一个数组里
 Set cnn = New ADODB.Connection '实体化,连接数据源
 cnn.Open ConnectString '打开数据源
 
 If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '比较确定sql数据开始单词是否为增,删,改
 cnn.Execute SQL '执行SQL语句
 MsgString = sTokens(0) & " query successful"
 '虽然MsgString不是返回值,但传递方式是ByRef,实参地址和这个地址相同
 Else
 Set rst = New ADODB.Recordset '实例化记录集
 rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic '打开要执行的内容sql,连接数据源,游标类型:键集游标,窗口值固定大小
 '得到临时表,游标指向第一条记录
 'get RecordCount,
 Set ExecuteSQL = rst
 MsgString = "查询到" & rst.RecordCount & _
 " 条记录 "
 End If
 
ExecuteSQL_Exit: ‘关闭连接
 Set rst = Nothing
 Set cnn = Nothing
 Exit Function
 
ExecuteSQL_Error:
 MsgString = "查询错误: " & _
 Err.Description
 Resume ExecuteSQL_Exit
End Function

总结来说,建立连接分三步走战略:打开--执行(增删改查)--关闭

文档

数据库的建立与链接问题

数据库的建立与链接问题: 做完学生管理系统,经过师傅的验收,发现对最初的概念了解相当不深刻!又反过头对5实例简单看了一下,老师常说,学习最重要的是反复,通过这次观看,重新对基本概念有所了解。首先看几个专业名词:ADO---activex data object动态数据对象通过OLE DB(
推荐度:
标签: 创建 链接 连接
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top