一句话说不清楚
请找找以前的贴子,近两天就有简单地说就是OLEDB
ADO
SQL建立一个ADODB.Connection.
获取记录ADODB.Recordset
命令:ADODB.Command
请找找以前的贴子,近两天就有简单地说就是OLEDB
ADO
SQL建立一个ADODB.Connection.
获取记录ADODB.Recordset
命令:ADODB.Command
解决方案 »
- RichTextBox中修改指定字符的颜色遇到的特殊问题!
- VFP程序转换问题,主要是DBF数据库转到MS SQL的问题
- 关于DateGrid的问题
- 什么语言是最有前途的?
- 如何在vb的picturebox中调用显示网络图片,非本地图片
- 你够胆拿这份钱吗?有胆试试看!
- 怎样能禁止被绑定的控件将改变的内容保存在数据库中??
- 怎样让自己的程序不配置net8,直接访问oracle数据库(在线等待,200分)
- 求助:请写一个具体解决"以commonDialog选择一图档读入后, ,以3x3切割后随机方式显示在一picture对象上,各小图不得重复出现"问题的程序,紧
- 对不起 是如何DBgrid控件不显示
- 谁有公历、农历相互转换的VB源代码?
- 续:关于报时程序
'这只是一个用向导生成的最简单的VB与SQL SERVER连接的程序,
'以下包括两个ADO对象——Connection和Recordset,另外我再加一个Command对象
'Connection对象是用来连接数据库的,我知道的连接有很多种方法,
'这种我认为是最好的一种也是最专业的一种,另外还有用控件的,我就不说这种了。
Dim WithEvents adoPrimaryRS As Recordset '记录集对象
Dim Cmd As Command '命令对象
Dim mbChangedByCode As Boolean
Dim mvBookMark As Variant
Dim mbEditFlag As Boolean
Dim mbAddNewFlag As Boolean
Dim mbDataChanged As Boolean
Dim db As Connection '连接对象Private Sub Form_Load()
'-------------以下就是定义一个Connection对象-----------------------------------
'这句是固定要写的,如果在定义的时候写成Dim db As New Connection就也可以不写这一句
Set db = New Connection
'如果用表格方式也就是用DATAGRID就一定要写这一句,否则就会出问题——这是我的经验
db.CursorLocation = adUseClient
'下面这句就是打开这个连接,我对于这几个参数也研究得不是很明白的,我只对我
'知道的几个参数说一下,其中driver是指odbc的驱动程序,server是指服务器的名称,
'uid是指用户名,pwd是指密码,database是指数据库,其实这一句也不是我写的,
'一般我都是用向导来生成这句,然后复制过来,大部分我认识的人也是这样写的。
db.Open "PROVIDER=MSDASQL;driver={SQL Server};server=cc;uid=sa;pwd=;database=bbs;"'-------------以下是用来定义记录集对象的-----------------------------------------
'这一句也是和Connection一样的
Set adoPrimaryRS = New Recordset
'这句的作用就是打开一个表,用的是SQL语句,第一个参数就是那个SQL语句,
'第二个参数是前面打开的连接,第三个和第四个参数我也没有看过具体的作用,
'如果你想知道其详细的作用你可以找一些书籍看一下
adoPrimaryRS.Open "select ID,BbsTitle,Description,FClass,SClass,MasterName,MasterMsg from bbsInfo", db, adOpenStatic, adLockOptimistic'------------下面的代码是将控件与记录集挂上,就和VFP是一样的,其中有两个主要的属性——我认为------------
'一个就是在下面用到的DataSource,另外还有一个,就是在设计的时候用到了一个属性datafield它是用来挂字段的
Dim oText As TextBox
'绑定文本框到数据提供者
For Each oText In Me.txtFields
Set oText.DataSource = adoPrimaryRS
Next mbDataChanged = False
End SubPrivate Sub CommandSample()
'以下是定义一个Command对象
Set Cmd = New Command '同上
Cmd.ActiveConnection = db '设置连接
'执行这个更新语句
Cmd.Execute "update bbsinfo set mastername='张辉' where mastername='zh'"End SubPrivate Sub Form_Resize()
On Error Resume Next
lblStatus.Width = Me.Width - 1500
cmdNext.Left = lblStatus.Width + 700
cmdLast.Left = cmdNext.Left + 340
End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If mbEditFlag Or mbAddNewFlag Then Exit Sub Select Case KeyCode
Case vbKeyEscape
cmdClose_Click
Case vbKeyEnd
cmdLast_Click
Case vbKeyHome
cmdFirst_Click
Case vbKeyUp, vbKeyPageUp
If Shift = vbCtrlMask Then
cmdFirst_Click
Else
cmdPrevious_Click
End If
Case vbKeyDown, vbKeyPageDown
If Shift = vbCtrlMask Then
cmdLast_Click
Else
cmdNext_Click
End If
End Select
End SubPrivate Sub Form_Unload(Cancel As Integer)
Screen.MousePointer = vbDefault
End SubPrivate Sub adoPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'为这个 recordset 显示当前记录位置
lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)
End SubPrivate Sub adoPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'验证代码置于此处
'下列动作发生时该事件被调用
Dim bCancel As Boolean Select Case adReason
Case adRsnAddNew
Case adRsnClose
Case adRsnDelete
Case adRsnFirstChange
Case adRsnMove
Case adRsnRequery
Case adRsnResynch
Case adRsnUndoAddNew
Case adRsnUndoDelete
Case adRsnUndoUpdate
Case adRsnUpdate
End Select If bCancel Then adStatus = adStatusCancel
End SubPrivate Sub cmdAdd_Click()
On Error GoTo AddErr
With adoPrimaryRS
If Not (.BOF And .EOF) Then
mvBookMark = .Book
End If
.AddNew
lblStatus.Caption = "添加记录"
mbAddNewFlag = True
SetButtons False
End With Exit Sub
AddErr:
MsgBox Err.Description
End SubPrivate Sub cmdDelete_Click()
On Error GoTo DeleteErr
With adoPrimaryRS
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
Exit Sub
DeleteErr:
MsgBox Err.Description
End SubPrivate Sub cmdRefresh_Click()
'只有多用户应用程序需要
On Error GoTo RefreshErr
adoPrimaryRS.Requery
Exit Sub
RefreshErr:
MsgBox Err.Description
End SubPrivate Sub cmdEdit_Click()
On Error GoTo EditErr lblStatus.Caption = "编辑记录"
mbEditFlag = True
SetButtons False
Exit SubEditErr:
MsgBox Err.Description
End Sub
Private Sub cmdCancel_Click()
On Error Resume Next SetButtons True
mbEditFlag = False
mbAddNewFlag = False
adoPrimaryRS.CancelUpdate
If mvBookMark > 0 Then
adoPrimaryRS.Book = mvBookMark
Else
adoPrimaryRS.MoveFirst
End If
mbDataChanged = FalseEnd SubPrivate Sub cmdUpdate_Click()
On Error GoTo UpdateErr adoPrimaryRS.UpdateBatch adAffectAll If mbAddNewFlag Then
adoPrimaryRS.MoveLast '移到新记录
End If mbEditFlag = False
mbAddNewFlag = False
SetButtons True
mbDataChanged = False Exit Sub
UpdateErr:
MsgBox Err.Description
End SubPrivate Sub cmdClose_Click()
Unload Me
End SubPrivate Sub cmdFirst_Click()
On Error GoTo GoFirstError adoPrimaryRS.MoveFirst
mbDataChanged = False Exit SubGoFirstError:
MsgBox Err.Description
End SubPrivate Sub cmdLast_Click()
On Error GoTo GoLastError adoPrimaryRS.MoveLast
mbDataChanged = False Exit SubGoLastError:
MsgBox Err.Description
End SubPrivate Sub cmdNext_Click()
On Error GoTo GoNextError If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext
If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then
Beep
'已到最后返回
adoPrimaryRS.MoveLast
End If
'显示当前记录
mbDataChanged = False Exit Sub
GoNextError:
MsgBox Err.Description
End SubPrivate Sub cmdPrevious_Click()
On Error GoTo GoPrevError If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious
If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then
Beep
'已到最后返回
adoPrimaryRS.MoveFirst
End If
'显示当前记录
mbDataChanged = False Exit SubGoPrevError:
MsgBox Err.Description
End SubPrivate Sub SetButtons(bVal As Boolean)
cmdAdd.Visible = bVal
cmdEdit.Visible = bVal
cmdUpdate.Visible = Not bVal
cmdCancel.Visible = Not bVal
cmdDelete.Visible = bVal
cmdClose.Visible = bVal
cmdRefresh.Visible = bVal
cmdNext.Enabled = bVal
cmdFirst.Enabled = bVal
cmdLast.Enabled = bVal
cmdPrevious.Enabled = bVal
End Sub
dim ss as string
dim strBaseName as String '数据库名称
dim strServerName as String 'SQL SERVER 服务器名称
dim lsPass1 as string '密码
dim lsLoginId as string '用户名
ss = "Provider=SQLOLEDB.1;Password=" + lsPass1 + ";Persist Security Info=True;User ID=" + lsLoginId + ";Initial Catalog=" & strBaseName & ";Data Source=" & strServerName
Set CONsql = New ADODB.Connection
With CONsql
.CursorLocation = adUseClient
.CommandTimeout = 500
.Open ss
End With
dim Rs as new adodb.recordset
rs.open "select * from table1 ",CONsql, adOpenStatic, adLockOptimistic