久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)

時間:2019-05-12 16:12:20下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)》,但愿對你工作學(xué)習有幫助,當然你在寫寫幫文庫還可以找到更多《ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)》。

第一篇:ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)

ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)

使用ADO編程模型需添加ADO對象類庫的“引用”----“Microsoft ActiveX Data Objects 2.x Library” ADO之VB數(shù)據(jù)庫操作主要包括讀、寫、修改及刪除等操作,不論是進行什么數(shù)據(jù)庫操作都必須首先連接到數(shù)據(jù)庫。

一、連接到數(shù)據(jù)庫

1、連接到SQL數(shù)據(jù)庫:

通過ADO的Connection對象可實現(xiàn)VB與SQL數(shù)據(jù)庫的連接。一般方法如下:

Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象

cnn.ConnectionString = “Provider=SQLOLEDB.1;Password=密碼;User ID=用戶名;Initial Catalog=SQL數(shù)據(jù)庫文件;Data Source= localhost;”

'指定提供者,設(shè)置數(shù)據(jù)源 cnn.Open

‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close

‘關(guān)閉到數(shù)據(jù)庫的連接 或者:

Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象

cnn.Open “Provider=SQLOLEDB.1;Password=密碼;User ID=用戶名;Initial Catalog=SQL數(shù)據(jù)庫文件;Data Source= localhost;”

‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close

‘關(guān)閉到數(shù)據(jù)庫的連接

2、連接到ACCESS數(shù)據(jù)庫:

通過ADO的Connection對象可實現(xiàn)VB與ACCESS數(shù)據(jù)庫的連接。一般方法如下:

Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象

cnn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS數(shù)據(jù)庫文件.MDB” '指定提供者,設(shè)置數(shù)據(jù)源

cnn.Open

‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close

‘關(guān)閉到數(shù)據(jù)庫的連接 或者: Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB”

‘打開到數(shù)據(jù)庫的連接 ……..cnn.Close

‘關(guān)閉到數(shù)據(jù)庫的連接

二、讀數(shù)據(jù)庫操作

讀數(shù)據(jù)庫操作一般可通過recordset對象實現(xiàn)。方法如下—以ACCESS數(shù)據(jù)庫為例:

Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB”

‘打開到數(shù)據(jù)庫的連接

Dim rs As New Recordset

'聲明一個記錄集對象

rs.Open [記錄源, cnn, 游標類型, 鎖定類型, 命令類型]

‘也可先設(shè)置記錄集相關(guān)屬性

text1.text= rs(“字段名稱1或索引”)

‘假設(shè)讀取出來的字段信息顯示在文本框中,三種讀取方法等價 text2.text=rs.fields(“字段名稱2或索引”)text3.text= rs!字段名稱3 …….rs.close

‘關(guān)閉記錄集對象 cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing

‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例

? 記錄源一般為一條SQL查詢語句,以實現(xiàn)查詢目的。

? Recordset對象還保持查詢返回的記錄的位置,它返回第一個檢索到的記錄,并允許你一次一項逐步掃描其他結(jié)果。Recordset對象的部分屬性及方法如下 Rs(i): 讀取第i個字段的數(shù)據(jù),i從0開始 Rs(字段名): 讀取指定字段的數(shù)據(jù) Rs.EOF:記錄指針指到記錄的尾部 Rs.BOF:記錄指針指到記錄的頭部 Rs.RecordCount: 游標中的數(shù)據(jù)記錄總數(shù)

Rs.PageSize:當對象設(shè)有分頁時,用于指定邏輯頁中的記錄個數(shù) Rs.PageCount:返回記錄集中的邏輯分頁數(shù) Rs.MoveNext: 將記錄指針移到下一個記錄 Rs.MovePrev: 將記錄指針移到上一個記錄 Rs.MoveFirst: 將記錄指針移到第一個記錄 Rs.MoveLast: 將記錄指針移到最后一個記錄 rs.Delete:將當前記錄刪除 rs.addnew:添加一條新記錄(行)

? 如果要讀取滿足條件的數(shù)據(jù)庫記錄,只要在SELECT語句中增加WHERE子句即可(例如:WHERE 性別=”男”),如果要讀取多條滿足條件的數(shù)據(jù)庫記錄,可通過循環(huán)語句來實現(xiàn),并且每讀取一條記錄后使用Rs.MoveNext移動記錄指針以讀取下一條記錄。

三、寫數(shù)據(jù)庫操作

方法1:使用recordset對象(此方法一般初學(xué)者使用較多)。方法如下—以ACCESS數(shù)據(jù)庫為例: Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB”

‘打開到數(shù)據(jù)庫的連接

Dim rs As New Recordset

'聲明一個記錄集對象

rs.Open [記錄源, cnn, 游標類型, 鎖定類型, 命令類型]

‘也可先設(shè)置記錄集相關(guān)屬性 rs.addnew ‘告訴rs我們要添加一行

rs(“字段名稱1或索引”)=值1

‘給要添加的行的一個字段賦值,三種方法等價 rs.fields(“字段名稱2或索引”)=值2 rs!字段名稱3 =值3 …….rs.update

‘通知rs我們要把這個行寫入數(shù)據(jù)庫 rs.close

‘關(guān)閉記錄集對象 cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing

‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例

? addnew使用方法后,如果要放棄添加的結(jié)果,應(yīng)調(diào)用記錄集的CancelUpdate方法放棄。

方法2:使用Connection對象的Execute方法對表進行SQL記錄插入操作(要求要熟悉SQL命令)Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB”

‘打開到數(shù)據(jù)庫的連接

strSQL = “Insert Into 數(shù)據(jù)表(字段1, 字段2…..)Values(值1, 值2…..)

‘拼寫Insert插入語句 cnn.Execute strSQL

'執(zhí)行Insert語句實現(xiàn)添加 …….cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接

set cnn=Nothing ‘釋放Connection對象實例

四、修改數(shù)據(jù)庫操作

方法1:使用recordset對象(此方法一般初學(xué)者使用較多)。方法如下—以ACCESS數(shù)據(jù)庫為例: Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB“

‘打開到數(shù)據(jù)庫的連接

Dim rs As New Recordset

'聲明一個記錄集對象

rs.Open [記錄源, cnn, 游標類型, 鎖定類型, 命令類型]

‘也可先設(shè)置記錄集相關(guān)屬性 …….rs(”字段名稱1或索引“)=新值1

‘‘給要修改的行的一個字段賦一個新值,三種方法等價 rs.fields(”字段名稱2或索引“)=新值2 rs!字段名稱3 =新值3 …….rs.update

‘通知rs,我們要把修改好的記錄行寫入數(shù)據(jù)庫 rs.close

‘關(guān)閉記錄集對象 cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing

‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例

? 如果放棄修改結(jié)果,應(yīng)調(diào)用記錄集的CancelUpdate方法放棄更新數(shù)據(jù)庫。

方法2:使用Connection對象的Execute方法對表進行SQL記錄更新操作(要求要熟悉SQL命令)Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB“

‘打開到數(shù)據(jù)庫的連接

strSQL = ”Update 數(shù)據(jù)表 Set 字段1=新值1, 字段2=新值2…..‘拼寫Update語句,以便進行修改 cnn.Execute strSQL

'執(zhí)行Insert語句實現(xiàn)添加 …….cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接

set cnn=Nothing ‘釋放Connection對象實例

五、刪除數(shù)據(jù)庫操作

方法1:使用recordset對象(此方法一般初學(xué)者使用較多)。方法如下—以ACCESS數(shù)據(jù)庫為例方法1:通過 Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB”

‘打開到數(shù)據(jù)庫的連接

Dim rs As New Recordset

'聲明一個記錄集對象

rs.Open [記錄源, cnn, 游標類型, 鎖定類型, 命令類型]

‘也可先設(shè)置記錄集相關(guān)屬性 …….rs.Delete

‘刪除當前記錄 …….rs.update

‘通知rs,我們要把修改好的記錄行寫入數(shù)據(jù)庫 rs.close

‘關(guān)閉記錄集對象 cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接 set rs=Nothing

‘釋放rs對象實例 set cnn=Nothing ‘釋放Connection對象實例

? 刪除數(shù)據(jù)庫記錄前應(yīng)先找到(查詢)待刪除的記錄項(通過rs.Open來實現(xiàn))。

方法2:使用Connection對象的Execute方法(要求使用者要熟悉SQL命令)例如:如果要將數(shù)據(jù)庫“成績.mdb”中的名字為“學(xué)生情況表”的數(shù)據(jù)表中,學(xué)號為'07001'的記錄刪除,可通過下列方法來實現(xiàn)。

Dim cnn As New ADODB.Connection ‘創(chuàng)建Connection對象cnn,關(guān)鍵字new用于創(chuàng)建新對象 cnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ACCESS

數(shù)據(jù)庫文件.MDB”

‘打開到數(shù)據(jù)庫的連接

sql=“delete from學(xué)生情況表where 學(xué)號='07001'”

‘拼寫delete語句,以便進行刪除

cnn.Execute strSQL

'執(zhí)行elete語句實現(xiàn)刪除 …….cnn.Close

‘關(guān)閉與數(shù)據(jù)庫的連接

set cnn=Nothing ‘釋放Connection對象實例

附:分頁簡介---使用記錄集

一、.原理:

分頁其實是將數(shù)據(jù)庫中的記錄分割成若干段,并將各段記錄放在同一個“邏輯頁面”上“分屏顯示”出來,其實顯示的“邏輯頁面”只有1頁,只是每次顯示的頁面記錄不同罷了。通過控制各頁中數(shù)據(jù)庫顯示記錄的不同,來刷新頁面的顯示內(nèi)容。

二、用到的幾個記錄集屬性

rs.pagesize:定義一頁顯示記錄的條數(shù); rs.recordcount:統(tǒng)計數(shù)據(jù)庫記錄總數(shù); rs.pagecount:統(tǒng)計總頁數(shù);

rs.absolutepage:將數(shù)據(jù)庫指針移動到當前頁要顯示的數(shù)據(jù)記錄的第一條記錄;比如有20條記錄的一個數(shù)據(jù)庫,我們分為一頁顯示5條記錄,如將AbsolutePage屬性設(shè)為2,則當前記錄指針移至第2頁第1條記錄,也即將指針移動到第6條記錄處,依次類推....(AbsolutePage 屬性是以 1 為起始的)

第二篇:操作數(shù)據(jù)庫小結(jié)

一.查詢操作

對數(shù)據(jù)進行查詢操作時,有兩種情況:一是查詢單個值,二是 查詢?nèi)舾蓷l記錄。

1、查詢單個值

需要使用Command對象的ExecuteScalar()方法:步驟如下:(1)、創(chuàng)建Connection對象(數(shù)據(jù)庫連接對象)。(2)、創(chuàng)建查詢用的SQL語句。(3)、利用SQL語句和Connection對象創(chuàng)建Command對象。(4)、打開數(shù)據(jù)庫連接,調(diào)用Connection對象的Open()方法。(5)、調(diào)用Command對象的ExecuteScalar()方法,返回一個標量值。(6)、操作完成后關(guān)閉數(shù)據(jù)庫連接,調(diào)用Connection對象的Close()方法。

2、查詢?nèi)舾蓷l記錄

需要使用Command對象的ExecuteReader()方法:步驟如下:(1)、創(chuàng)建Connection對象(數(shù)據(jù)庫連接對象)。(2)、創(chuàng)建查詢用的SQL語句。(3)、利用SQL語句和Connection對象創(chuàng)建Command對象。(4)、打開數(shù)據(jù)庫連接,調(diào)用Connection對象的Open()方法。(5)、調(diào)用Command對象的ExecuteReader()方法,返回一個DataReader對象。(6)、調(diào)用DataReader對象的Read()方法逐行讀取記錄,如果讀到記錄返回Ture,否則返回False.(7)、使用(type)dataReader[列名或索引]的方式讀取這一行中某一列的值。(8)、關(guān)閉DataReader對象(9)、操作完成后關(guān)閉數(shù)據(jù)路連接,調(diào)用Connection對象的Close()方法。

二、非查詢操作

對數(shù)據(jù)庫執(zhí)行非查詢操作時,包括增加,修改,刪除數(shù)據(jù),都使用Command對象的ExecuteNonQuery()方法,步驟如下:

(1)、創(chuàng)建Connection對象(數(shù)據(jù)庫連接對象)(2)、創(chuàng)建增刪改用的SQL語句。(3)、利用SQL語句和Connection對象創(chuàng)建Command對象。(4)、打開數(shù)據(jù)庫連接,調(diào)用Connection對象的Open()方法。(5)、調(diào)用Command對象的ExecuteNonQuery()方法執(zhí)行命令,返回受影響的行數(shù)。(6)、操作完成后關(guān)閉數(shù)據(jù)庫連接,調(diào)用Connection對象的Close()方法。

本章總結(jié)

1、使用DataReader查詢數(shù)據(jù)記錄,通過Command對象的ExecuteReader()方法返回一個DataReader對象。

2、使用DataReader讀取數(shù)據(jù)室每次調(diào)用Read()方法讀取一行數(shù)據(jù)。

3、DataReader使用完后要調(diào)用它的Close()方法關(guān)閉。

4、使用Command對象的ExecuteNonQuery()方法對數(shù)據(jù)進行增刪改的操作。

5、ExecuteNonQuery()方法返回受影響的行數(shù)。

6、ListView(列表視圖)控件有5種視圖模式,重點是Details 列表視圖的Items屬性表示包含在空間中的所有項的結(jié)合,每一個項都是一個ListViewItem,使用Items.Add()方法向列表視圖中添加一項 調(diào)用列表視圖項的SubItems.AddRange()方法添加它的子項

ListViewItem lviStudent = new ListViewItem(loginID);創(chuàng)建一個ListView項 lviStudent.Tag=(int)dataReader[“StudentId”];lvStudent.Items.Add(lviStudent);//向ListView中添加一個新項 lviStudent.SubItems.AddRange(new string[] {studentName,studentNo,userState});//向當前項中添加子項

7、ContextMenuStrip(快捷菜單)控件可以與其他控件結(jié)合使用,通過設(shè)置控件的ContextMenuStrip屬性來指定它的快捷菜單。

想鼠標右鍵單擊文本框時出現(xiàn)快捷菜單,就選中文本框?在屬性窗口中找到它的ContextMenuStrip屬性,選擇已有的右鍵菜單控件 txtLoginId.Focus():?

下拉列表:

創(chuàng)建Command對象?調(diào)用Command對象的ExecuteReader()方法創(chuàng)建DataReader對象(sqlDataReader dataReader=command.ExecuteReader())?使用DataReader的Reader()方法逐行讀取數(shù)據(jù)(放回bool類型)?讀取當前行的某列的數(shù)據(jù)(cboGrade.Items.Add(dataReader[“列名”]))?關(guān)閉DataReader對象,Close()方法

向數(shù)據(jù)庫中添加數(shù)據(jù):

創(chuàng)建Connection對象?定義要執(zhí)行的SQL語句?創(chuàng)建Command對象?執(zhí)行ExecuteNonQuery()方法?根據(jù)返回的結(jié)果進行后續(xù)的處理

雙擊顯示出ID:

MessageBox.show(dataGridView1.SelectedRows[0].cells[“ColID”].value.ToString());

刷新:

1,BindStudentByLoginID(txtBox.Text)2,listView.Items.RemoveAt(Listview1.SelectedIndices[0])//只能刪除選中的行(選中第幾個)

第三篇:VC++中MFC用Ado連接數(shù)據(jù)庫小結(jié)

VC++中MFC用Ado連接數(shù)據(jù)庫小結(jié)

VC++中使用MFC通過ADO連接數(shù)據(jù)庫方法小結(jié)(不包括異常的捕捉)這里主要講MFC與SQL2000數(shù)據(jù)庫的連接。1.在StdAfx.h頭文件中加入此句子

#import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”)2.在App類的InitInstance()函數(shù)中加入 ::CoInitialize(NULL);//表示com庫的初始化

鼠標右鍵點擊App類名添加虛函數(shù)ExitInstance(),在其中加入代碼 ::CoUninitialize();//釋放com庫。3.獲取連接字符串。

最簡單的方法就是新建一個.txt文件,將其后綴名改為.udl,雙擊它,在“提供程序”標簽頁中選擇“Microsoft OLE DB Provide fo Sql Server”,然后在“連接”標簽頁選擇填寫服務(wù)器、數(shù)據(jù)庫、登陸方式等信息,最后按“確定”。連接完成之后,將其用寫字板打開,第三行信息,如“Provider=SQLOLEDB.1;Integrated

Security=SSPI;Persist

Security Info=False;Initial Catalog=RuleDB_Data;Data Source=PYE”即為連接字符串。注意,若數(shù)據(jù)庫位于本機,在選擇填寫服務(wù)器一欄可直接填寫(local),記得一定要加括號。4.連接數(shù)據(jù)庫

在這里引入一個編寫好的封裝類:ADOConn。該類封裝了連接數(shù)據(jù)庫,對數(shù)據(jù)庫進行添加、刪除、修改操作及獲取查詢記錄集操作的方法。用戶可直接使用,這個類的頭文件和cpp文件內(nèi)容將在本文最后給出。

在一個工程里加入該類的方法為:把該類的頭文件和cpp文件拷貝到工程所在的文件夾里。然后在工程的工作區(qū)選擇Project->Add to Project->Files,將這兩個文件選擇加入。之后,就可以在程序里應(yīng)用這個類了。

首先在要用到數(shù)據(jù)庫的類的頭文件里設(shè)一個該類的對象,即加入代碼:ADOConn m_Ado;注意:記得要先在最前面加入#include “ADOConn.h”。

在應(yīng)用這個對象對數(shù)據(jù)庫進行操作之前,先對其初始化: m_Ado.OnInitADOConn(strConnect);其中strConnect即為上面獲取的連接字符串。

若要獲取數(shù)據(jù)庫中的部分記錄集,用m_Ado.GetRecordSet(strSql);其中strSql中存放查詢語句,查詢結(jié)果存放于m_Ado.m_pRecordset中,然后可用GetCollect()函數(shù)挨個獲取所有符合條件的記錄的各個字段的值。用完后記得用m_Ado.m_pRecordset.Close()關(guān)閉記錄集。

添加、修改、刪除操作,均用 m_Ado.ExecuteSQL(strSql);語句完成。

此外,若同時需要多種記錄集,則還需在要用到數(shù)據(jù)庫的類的頭文件里添加記錄集的對象,即_RecordsetPtr m_pRecordset;m_pRecordset在用之前也需初始化,初始化語句為: m_pRecordset.CreateInstance(__uuidof(Recordset));,同樣的,每回記錄集用完之后也得用Close()函數(shù)關(guān)閉。5.若在數(shù)據(jù)庫應(yīng)用程序編譯時遇到102個錯誤,則可把Debug文件夾刪了重新編譯即可。ADOConn類的頭文件:

#if!defined(AFX_ADOCONN_H__2B491720_FA04_4800_B616_219E55ABEA46__INCLUDED_)#define AFX_ADOCONN_H__2B491720_FA04_4800_B616_219E55ABEA46__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class ADOConn : public CObject { public: //添加一個指向Connection對象的指針: _ConnectionPtr m_pConnection;//添加一個指向Recordset對象的指針: _RecordsetPtr m_pRecordset;char error[1024];public: _ConnectionPtr& GetConnPtr(){return m_pConnection;} _RecordsetPtr& GetRecoPtr(){return m_pRecordset;} public: //事務(wù)回滾

BOOL RollbackTrans();//遞交 事務(wù) BOOL CommitTrans();//事務(wù)開始 BOOL BeginTrans();BOOL adoBOF();//頭 BOOL adoEOF();//尾 BOOL MoveNext();//下一個 BOOL CloseTable();//關(guān)閉表

BOOL CloseADOConnection();//關(guān)閉連接

BOOL GetCollect(LPCTSTR Name,CString &lpDest);//獲取某個字段的值 //執(zhí)行SQL語句 包含update delete insert BOOL ExecuteSQL(LPCTSTR lpszSQL);//初始化連接數(shù)據(jù)庫

BOOL OnInitADOConn(LPCTSTR ConnStr);// 執(zhí)行select語句 獲取記錄集

_RecordsetPtr& GetRecordSet(LPCTSTR lpszSQL);ADOConn();virtual ~ADOConn();};#endif //!defined(AFX_ADOCONN_H__2B491720_FA04_4800_B616_219E55ABEA46__INCLUDED_)class CADOException : public CException { public: // Constructor CADOException(char* pchMessage);public: ~CADOException(){} CString m_strMessage;virtual BOOL GetErrorMessage(LPTSTR lpstrError, UINT nMaxError, PUINT pnHelpContext = NULL);private: int m_nError;};ADOConn類的cpp文件: #include “stdafx.h” #include “ADOConn.h” #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__;#define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// ADOConn::ADOConn(){ memset(error,0,1024);} ADOConn::~ADOConn(){ } ////////////////////////////////////////////////////////////////////// // CADOException Class ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CADOException::CADOException(char* pchMessage){ m_strMessage = pchMessage;m_nError = GetLastError();} BOOL CADOException::GetErrorMessage(LPTSTR

lpstrError,UINT nMaxError,PUINT pnHelpContext /*= NULL*/){

char text[200];if(m_nError == 0){ wsprintf(text, “%s error”,(const char*)m_strMessage);} else { wsprintf(text, “%s error #%d”,(const char*)m_strMessage, m_nError);} strncpy(lpstrError, text, nMaxError-1);return TRUE;} BOOL ADOConn::OnInitADOConn(LPCTSTR ConnStr){ ::CoInitialize(NULL);try { // 創(chuàng)建Connection對象

m_pConnection.CreateInstance(“ADODB.Connection”);// 設(shè)置連接字符串,必須是BSTR型或者_bstr_t類型 _bstr_t strConnect

=

_bstr_t(ConnStr);//“Provider=SQLOLEDB;Server=127.0.0.1;Database=EventLogg;uid=event;pwd=event;”;m_pConnection->Open(strConnect,“",”“,adModeUnknown);return TRUE;} // 捕捉異常 catch(_com_error e){ // 顯示錯誤信息 TRACE(e.Description());// sprintf(error,”連接數(shù)據(jù)庫失敗 請檢查連接字符串rn當前連接字符串為:%s“,ConnStr);// throw new CADOException(error);throw new CADOException(”連接數(shù)據(jù)庫失敗“);} } //執(zhí)行SQL語句 包含update delete insert BOOL ADOConn::ExecuteSQL(LPCTSTR lpszSQL){ // _variant_t RecordsAffected;try { // Connection對象的Execute方法:(_bstr_t CommandText, // VARIANT * RecordsAffected, long Options)

// 其中CommandText是命令字串,通常是SQL命令。// 參數(shù)RecordsAffected是操作完成后所影響的行數(shù),// 參數(shù)Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名

// adCmdProc-存儲過程;adCmdUnknown-未知

m_pConnection->Execute(_bstr_t(lpszSQL),NULL,adCmdText);return true;} catch(_com_error e){ TRACE(e.Description());// sprintf(error,”t執(zhí)行SQL語句失敗rn SQL語句為:%s“,lpszSQL);// throw new CADOException(error);throw new CADOException(”執(zhí)行SQL語句失敗“);} } //執(zhí)行SELECT語句,獲得結(jié)果集,結(jié)果集放在m_pRecordset中 _RecordsetPtr& ADOConn::GetRecordSet(LPCTSTR lpszSQL){ try { // 創(chuàng)建記錄集對象

m_pRecordset.CreateInstance(__uuidof(Recordset));// 取得表中的記錄

m_pRecordset->Open(_bstr_t(lpszSQL),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);} // 捕捉異常 catch(_com_error e){ // 顯示錯誤信息 TRACE(e.Description());// sprintf(error,”t執(zhí)行SELECT語句失敗rnSELECT語句為:%s“,lpszSQL);// throw new CADOException(error);throw new CADOException(”執(zhí)行SELECT語句失敗“);} // 返回記錄集 return m_pRecordset;} //獲取某個字段的值

BOOL ADOConn::GetCollect(LPCTSTR Name,CString &lpDest){ VARIANT vt;try { vt = m_pRecordset->GetCollect(Name);/* _bstr_t bstr =(_bstr_t)vt;if(lpDest!= ”“){ strcpy(lpDest,bstr);}*/ if(vt.vt!=VT_NULL)lpDest=(LPCSTR)_bstr_t(vt);else lpDest=”“;} catch(_com_error e){ TRACE(e.Description());sprintf(error,”獲取字段:%s值失敗“,Name);throw new CADOException(error);} return TRUE;} //關(guān)閉數(shù)據(jù)庫

BOOL ADOConn::CloseADOConnection(){ try { m_pConnection->Close();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”關(guān)閉數(shù)據(jù)庫失敗“);} return TRUE;} //關(guān)表

BOOL ADOConn::CloseTable(){ try { m_pRecordset->Close();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”關(guān)閉表失敗“);} return TRUE;} //下一個

BOOL ADOConn::MoveNext(){ try { m_pRecordset->MoveNext();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”結(jié)果集移向下一個失敗“);} return TRUE;} //尾

BOOL ADOConn::adoEOF(){ return m_pRecordset->adoEOF;} //頭

BOOL ADOConn::adoBOF(){ return m_pRecordset->BOF;} //事務(wù)開始

BOOL ADOConn::BeginTrans(){ try { m_pConnection->BeginTrans();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”事務(wù)開始失敗“);}

return TRUE;} //遞交事務(wù)

BOOL ADOConn::CommitTrans(){ try { m_pConnection->CommitTrans();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”遞交事務(wù)失敗“);} return TRUE;} //事務(wù)回滾

BOOL ADOConn::RollbackTrans(){ try { m_pConnection->RollbackTrans();} catch(_com_error e){ TRACE(e.Description());sprintf(error,e.Description());throw new CADOException(”回滾事務(wù)失敗");} return TRUE;}

第四篇:《數(shù)控車削編程與操作訓(xùn)練》之G70、G71指令教案

《數(shù)控車削編程與操作訓(xùn)練》

------G71、G70復(fù)合固定循環(huán)指令教案

授課章節(jié): G71、G70復(fù)合固定循環(huán)指令 教學(xué)重點:G71、G70指令

教學(xué)難點:G71、G70指令格式、粗精加工輪廓定義 使用教材:《數(shù)控車削編程與操作訓(xùn)練》高等教育出版社、機械工程部《數(shù)控車削與編程》集體教案

一、復(fù)習舊識:

G90簡單固定循環(huán)指令:用于單一形狀固定指令 格式:

圓柱面車削循環(huán):G90X(U)-----Z(W)-------F------;

圓錐面車削循環(huán):G90 X(U)-----Z(W)-------R-----F------;

(各參數(shù)含義)

優(yōu)點:對于加工余量較大的毛坯,刀具反復(fù)執(zhí)行相同的動作,用G90指令簡化了許多相同或相似的程序段,縮短了編程時間,提高了工作效率。

缺點:車削過渡尺寸較大的階梯軸時,有些多次重復(fù)進行的動作,使用G90指令編程仍然比較麻煩。

如圖1:(P33 例2—7)(請同學(xué)們思考用G90指令編寫該零件的程序)

二、導(dǎo)入新課:

車削過渡尺寸較大的階梯軸時,有些多次重復(fù)進行的動作,使用G90指令編程仍然比較麻煩,用G71、G70等復(fù)合循環(huán)指令更能簡化編程,數(shù)控系統(tǒng)能自動地計算出加工路線和進給路線,控制機床自動完成工件的加工。

三、新課講解:

1.分析G71、G70指令格式: A.G71 外圓粗車循環(huán)指令

指令格式:

G71 UΔd Re F S T ; G71 Pns Qnf UΔu WΔw;

式中:△d-背吃刀量;

e--退刀量;

ns--精加工輪廓程序段中開始程序段的段號; nf--精加工輪廓程序段中結(jié)束程序段的段號;

△u--X軸向精加工余量; △w--Z軸向精加工余量; 2.分析與G90的區(qū)別:

G90粗車循環(huán)留X向余量,Z向不留余量;

G71外圓粗車循環(huán)X向、Z向均留余量,精加工與粗加工偏移X向Δu/2,Z向△w余量。

圖2-21外圓粗車循環(huán)

A為刀具循環(huán)起點;A’---B為精加工路線

B.G70 精加工循環(huán)指令

G70 P(ns)Q(nf)

3.教學(xué)難點分析:

分析G70、G71指令格式

G71 U(Δd)R(e)F S T ; ⑴

G71 P(ns)Q(nf)U(Δu)W(Δw); ⑵ N(ns).....; ........; ....F; ....S; .... ⑶

N(nf).....; G70 P(ns)Q(nf); 【難點分散一】

由指令的第⑶部分(ns~nf程序段)給出的工件精加工軌跡,精加工軌跡的起點(即ns程序段的起點)與G71的起點、終點相同,簡稱A點; 【難點分散二】

粗車輪廓:精車軌跡按精車余量(Δu、Δw)偏移后的軌跡,是執(zhí)行G71形成的軌跡輪廓。精加工軌跡的第一段(ns程序段)只能是X軸的快速移動或切削進給,ns程序段的終點簡稱B點;精加工軌跡的終點(nf程序段的終點)簡稱C點。精車軌跡為A點→B點→C點。4.示例講解: 教材P33 例2—7(分析粗加工、精加工走刀路線)5.課堂練習:

P56 2.6(視學(xué)生掌握情況可再多作講解)四.作業(yè)布置:

斯沃仿真練習:P56 2.6、2.7、2.8(將毛坯改為Φ60的棒料)五.課堂小結(jié): 在復(fù)合固定循環(huán)中,對零件的輪廓定義之后,即可完成從粗加工到精加工的全過程,使程序得到進一步簡化。

1.這些復(fù)合循環(huán)指令的精車軌跡的功能有哪些? 2.G70指令的是怎么執(zhí)行的?

3.這些復(fù)合循環(huán)指令各參數(shù)的含義是什么?

第五篇:數(shù)據(jù)庫應(yīng)用基礎(chǔ)(第二版)第二章數(shù)據(jù)庫的基本操作實驗2.2之實驗報告

四、實驗2-2報告

1.通過上述實驗,請回答下列問題

(1)LIST ____RECORD____=DISPLAY,而DISPLAY____ALL____=LIST。

(2)執(zhí)行了LIST命令后,EOF()=___T__。

(3)執(zhí)行了GOTOP命令后,BOF()=.T.,對嗎?為什么?

答:不對,因為執(zhí)行了GO TOP命令后,記錄指針移動到表文件的第一條記錄上,爾BOF()是測試記錄指針是否在文件頭的函數(shù),首記錄和文件頭并不是同一個位置。

(4)如何用LIST/DISPLAY命令顯示備注字段內(nèi)容?

答:LIST是是滾動顯示當前表中的指定記錄,如果要顯示備注型字段的內(nèi)容,則必須在LIST命令中指定備注型字段名;DISPLAY分屏顯示當前表中的指定數(shù)據(jù)。

(5)你認為用REPLACE對表文件記錄進行修改,與用BROWSE命令修改有什么不同?

答:REPLACE命令是成批修改表字段值的非全屏幕編輯命令;而BROWSE命令具有現(xiàn)實和修改表內(nèi)容的功能。

(6)SET DELETED ON/OFF語句對被邏輯刪除的記錄有何影響?

答:此語句制定標有刪除的記錄是否參與其他命令的處理。SET DELETED ON表示邏輯刪除標志有效,既有刪除標記的記錄不參與處理;SET DELETED OFF表示邏輯刪除標志無效,既有刪除標記的記錄參與處理。

(7)通過實驗,請你歸納當EOF()為.T.時,RECNO()為多少?當BOF()為.T.時,RECNO()為多少?

答:當EOF()為.T.時,RECNO()為末記錄;當BOF()為.T.時,RECNO()為文件頭。

(8)用SORT命令建立排序文件后,緊接著用LIST命令卻看不到排序結(jié)果,為什么?

答:因為還沒有使用use打開對應(yīng)文件

(9)建立索引文件時,有一個可選參數(shù)[UNIQUE],它有什么意義?你能舉例說明嗎?

答:[UNIQUE],當多個記錄的<索引表達式>值相同時,只有其中第一個記錄的值記入索引文件。

(10)請總結(jié)一下表的排序與表索引有什么不同。

答:索引是表記錄排序的一種方法,同時生成一張索引表,而表的排序沒有生成其他文件。

2.實驗完成情況及存在問題

下載ADO編程模型之VB數(shù)據(jù)庫操作小結(jié)word格式文檔
下載ADO編程模型之VB數(shù)據(jù)庫操作小結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    主站蜘蛛池模板: 亚洲精品色午夜无码专区日韩| 色香欲天天天影视综合网| 99精品视频一区在线观看| 夜夜未满十八勿进的爽爽影院| 无码国产玉足脚交极品网站| 任我爽精品视频在线观看| 秋霞在线观看秋| 亚洲精品无码久久一线| 欧美大屁股熟妇bbbbbb| 少妇性l交大片| 日本爽快片100色毛片| 国产免费无码一区二区视频| 亚洲国产另类久久久精品小说| 亚洲国产av玩弄放荡人妇| 亚洲乱码日产精品b| 国产欧美va天堂在线观看视频| 色综合久久久久综合99| 亚洲国产成人精品无码区在线网站| 久久精品人人做人人妻人人玩| 日韩人妻熟女中文字幕| 少妇高潮太爽了在线视频| 免费午夜爽爽爽www视频十八禁| 久久99精品久久久久久琪琪| 777亚洲精品乱码久久久久久| 国产亚洲精品久久久久久动漫| 亚洲精品无码久久久久久| 麻豆国产精品久久人妻| 波多野结衣av一区二区全免费观看| 亚洲乱码av中文一区二区| 亚洲另类无码专区国内精品| 国精品人妻无码一区二区三区蜜柚| 日本欧美亚洲中文在线观看| 伊人久久大香线蕉av不变影院| 少妇厨房愉情理伦片视频在线观看| 久久综合乱子伦精品免费| 制服丝袜亚洲中文欧美在线| 亚洲精华国产精华精华液网站| 久久国产精品久久久久久| 亚洲变态另类天堂av手机版| 欧美日韩在线视频一区| 日本高清视频网站www|