Working with the ADO Recordset Object

Chia sẻ: Bui Tuan | Ngày: | Loại File: PDF | Số trang:5

lượt xem

Working with the ADO Recordset Object

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Làm việc với ADO Recordset Object Các đối tượng trung tâm trong mô hình đối tượng ADODB là đối tượng Recordset. Bạn sẽ được sử dụng đối tượng này khi bạn muốn thao tác hồ sơ cùng một lúc, mang lại một bộ hồ sơ mà để làm việc

Chủ đề:

Nội dung Text: Working with the ADO Recordset Object

  1. Working with the ADO Recordset Object The central object in the ADODB object model is the Recordset object. You will be using this object when you want to manipulate records one at a time or bring back a set of records with which to work. With ADO, when you declare the type of variable you are going to use, you can instantiate it at the same time with the New keyword. Displaying Records by Using GetString For debugging purposes, you can also dump the whole recordset into a string variable for display. Listing A.4 shows you how to do this. Listing A.4 basRecordsetExamples.vb: Opening and Retrieving a Recordset for Display Sub OpenRecordsetWithGetStringDisplayExample(ByVal txtResults As TextBox) Dim cnn As New ADODB.Connection() Dim rstCurr As New ADODB.Recordset() OpenNorthwindADOConnection(cnn) rstCurr.Open("Select * from Orders where OrderDate = '06/12/97'", cnn, ADODB.CursorTypeEnum.adOpenForwardOnly) txtResults.Text = rstCurr.GetString rstCurr.Close() End Sub Using the OpenNorthwindADOConnection subroutine listing in Listing A.3, a connection object is referenced, and that is passed to the Open method of a Recordset object. Tip Notice that the cursor type returned will be ADODB.CursorTypeEnum.adOpenForwardOnly. Because all that is happening is the data being dumped to a string, using this cursor type makes sense. This will give you the best performance. Some other choices include adOpenDynamic, adOpenKeyset, adOpenStatic, and adOpenUnspecified.
  2. You can run this example by clicking on the button labeled Open a Recordset with GetString Display on the main form. Figure A.5 shows what you will see. Figure A.5. The GetString method is handy for checking out data. Editing and Updating Records You can use several methods to perform editing and updating of records in code. Unlike the last section in which you could open the recordset as a Forward Only type cursor, you will want to open it as a Dynamic type cursor. You can see this in Listing A.5. Listing A.5 basRecordsetExamples.vb: Opening and Retrieving a Recordset for Display Sub OpenRecordsetWithEditingExample(ByVal txtResults As TextBox) Dim cnn As New ADODB.Connection() Dim rstCurr As New ADODB.Recordset() Dim fldCurr As ADODB.Field
  3. Dim strTemp As String OpenNorthwindADOConnection(cnn) rstCurr.Open("Select * from Orders where OrderDate = '06/12/97'", cnn, ADODB.CursorTypeEnum.adOpenDynamic, _ ADODB.LockTypeEnum.adLockOptimistic) With rstCurr Do Until .EOF strTemp = strTemp & " Old Field Value: " & _ .Fields("ShippedDate").Value '-- Updating the release date .Fields("ShippedDate").Value = DateAdd(DateInterval.Day, 5, _ .Fields("ShippedDate").Value) .Update() strTemp = strTemp & " New Field Value: " & _ .Fields("ShippedDate").Value & vbCrLf .MoveNext() Loop End With txtResults.Text = strTemp rstCurr.Close() End Sub You can see that the Update method is used after assigning the value that you want to the field you specify. You could have specified other fields to be updated as well. Note
  4. Notice that when updating individual fields in the recordset, the Value property is specified to be updated. You didn't have to do this in VB 6.0 or VBA, but .NET doesn't allow for default properties, which the Value property is. You don't have to explicitly use an Edit method; in fact, you won't find one like you could in previous editions. To add a new record, you must use the AddNew method before updating field values. To delete a record, you use the Delete method. One last thing to discuss about recordsets is how to persist, or save a recordset to disk. Persisting a Recordset This example will open up two recordsets: one from the Orders table, and one from a file created from the Orders table called OrdersForDate.rst. The code, shown in Listing A.6, opens the Orders table for a specific date and uses the GetString method to stash the contents to the results text box. The routine then saves that recordset using the Save method, and passes the adPersistADTG format enumerator. You could save the recordset as XML by using adPersistXML. The code opens the file into a recordset and prints it by saving it to the results TextBox control. Listing A.6 basRecordsetExamples.vb: Persisting a Recordset to Disk Sub PersistingARecordset(ByVal txtResults As TextBox) Dim cnn As New ADODB.Connection() Dim rstOrig As New ADODB.Recordset() Dim rstPersist As New ADODB.Recordset() Const adCmdFile As Long = 256 OpenNorthwindADOConnection(cnn) '-- Open forward only and readonly since we are just saving it to disk. rstOrig.Open("Select * from Orders where OrderDate = '06/12/97'", cnn, ADODB.CursorTypeEnum.adOpenStatic) txtResults.Text = "Original Records : " & vbCrLf & rstOrig.GetString '-- Delete any existing old copies. ' If you don't, you will get an error.
  5. On Error Resume Next Kill("OrdersForDate.rst") '-- Create the persistent recordset in the applications directory On Error GoTo 0 rstOrig.Save("OrdersForDate.rst", ADODB.PersistFormatEnum.adPersistADTG) cnn = Nothing rstOrig = Nothing ' Open the persisted recordset rstPersist.Open("OrdersForDate.rst", Options:=adCmdFile) txtResults.Text = txtResults.Text & vbCrLf & vbCrLf & _ "Persisted File : " & vbCrLf & rstPersist.GetString rstPersist.Close() End Sub That's all there is to it. You will find that you can do most other things with recordsets using VB .NET that you have been able to do in other languages. Now take a look at another common task that you must do if you are using ADO with Visual Basic .NET: calling stored procedures.
Đồng bộ tài khoản