2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  實驗內(nèi)容:</b></p><p><b>  一.配置數(shù)據(jù)源</b></p><p>  配置數(shù)據(jù)源共有兩種方法:</p><p>  方法一:運用數(shù)據(jù)源管理工具來進行配置。</p><p>  方法二:使用Driver Manager 提供的ConfigDsn函數(shù)來

2、增加、修改或刪除數(shù)據(jù)源。這種方法特別適用于在應(yīng)用程序中創(chuàng)建的臨時使用的數(shù)據(jù)源。</p><p>  在本實驗中,我們采用第一種方法創(chuàng)建數(shù)據(jù)源。實驗中需要同時用到KingbaseES和SQL Server,因此需要分別建立兩個數(shù)據(jù)源,我們將其取名為KingbaseES ODBC和SQLServer。下面是建立這兩個數(shù)據(jù)源的具體步驟。</p><p>  選擇『開始』│『設(shè)置』│『控制面板』菜

3、單,在彈出窗口中雙擊“管理工具”圖標進入管理工具界面,雙擊“數(shù)據(jù)源(ODBC)”圖標。</p><p>  1.建立KingbaseES數(shù)據(jù)源。</p><p>  選擇“系統(tǒng)DSN”選項,單擊【添加(D)…】按鈕,系統(tǒng)彈出“創(chuàng)建新數(shù)據(jù)源”對話框,如圖1所示:</p><p><b>  圖1 數(shù)據(jù)源管理器</b></p><

4、;p>  如圖2所示,在ODBC驅(qū)動器程序列表中,選擇“Kingbase ODBC Driver”,單擊【完成】按鈕,系統(tǒng)彈出“Kingbase ODBC數(shù)據(jù)源配置”對話框,如圖3所示。</p><p>  圖2 創(chuàng)建新數(shù)據(jù)源</p><p>  輸入數(shù)據(jù)源名稱、數(shù)據(jù)庫名稱以及數(shù)據(jù)庫IP地址,單擊【確定】按鈕。圖中數(shù)據(jù)源的名稱為Kingbase ODBC,連接的數(shù)據(jù)庫為TEST,服

5、務(wù)器為localhost,用戶名和口令分別為SYSTEM和MANAGER。注意:Kingbase區(qū)別大小寫。</p><p>  圖3 Kingbase ODBC數(shù)據(jù)源配置</p><p>  單擊【保存】按鈕,這樣就創(chuàng)建了一個名為“Kingbase ODBC”的Kingbase ES ODBC數(shù)據(jù)源。</p><p>  如果要測試和數(shù)據(jù)源的連接是否成功,可以單

6、擊“測試連接”,系統(tǒng)會根據(jù)測試的結(jié)果反饋相應(yīng)的消息框,如圖4和圖5所示。</p><p>  圖4 連接成功 圖5 連接失敗</p><p>  以上五步就建立了一個名為KingbaseES ODBC的數(shù)據(jù)源。</p><p>  2.建立SQLServer數(shù)據(jù)源。</p><p>  選擇

7、“系統(tǒng)DSN”選項,單擊【添加(D)…】按鈕,系統(tǒng)彈出“創(chuàng)建新數(shù)據(jù)源”對話框,如圖6所示:</p><p><b>  圖6 數(shù)據(jù)源管理器</b></p><p>  如圖7所示,在ODBC驅(qū)動器程序列表中,選擇“SQL Server”,單擊【完成】按鈕,系統(tǒng)彈出“Create New Data Source to SQL Server”對話框,如圖8所示。</

8、p><p>  圖7 創(chuàng)建數(shù)據(jù)源配置</p><p>  如圖8,輸入數(shù)據(jù)源名稱和服務(wù)器,單擊【下一步】按鈕。圖中數(shù)據(jù)源的名稱為SQLServer,服務(wù)器為(local)。如圖9,選擇身份認證方式,輸入用戶名和密碼,用戶名和口令分別為sa和sa(請根據(jù)實際情況進行修改,并對源代碼進行相應(yīng)的修改)。</p><p>  圖8 SQLServer數(shù)據(jù)源配置(1)<

9、/p><p>  圖9 SQLServer數(shù)據(jù)源配置(2)</p><p>  連續(xù)單擊【下一步】按鈕,這樣就創(chuàng)建了一個名為“SQLServer”的SQL Server ODBC數(shù)據(jù)源。如圖10所示,將彈出一個提示框,提示即將創(chuàng)建一個新的ODBC數(shù)據(jù)源。</p><p><b>  圖10 提示框</b></p><p> 

10、 如果要測試和數(shù)據(jù)源的連接是否成功,可以單擊“Test Data Source”,如果連接成功,系統(tǒng)將會顯示一個連接成功的消息框,如圖11所示。</p><p><b>  圖11 連接成功</b></p><p>  以上五步就建立了一個名為SQLServer的數(shù)據(jù)源。</p><p>  注:在創(chuàng)建數(shù)據(jù)源,測試連接是否成功時,如果Kingb

11、aseES和SQL Server未啟動服務(wù),則將顯示連接失敗。啟動服務(wù)后,再進行測試,連接成功。</p><p>  二. 通過ODBC訪問數(shù)據(jù)庫,并且對數(shù)據(jù)庫進行操作。</p><p><b>  1.實驗環(huán)境介紹。</b></p><p>  實驗四是在之前完成的實驗一和實驗二的基礎(chǔ)上進行的。</p><p>  機

12、器配置為:CPU: P3 800 內(nèi)存:512MB 硬盤:30G </p><p>  軟件系統(tǒng):WINDOWS 2000 SERVER FAMILY。</p><p>  在實驗一中,我們已經(jīng)成功安裝了KingbaseES V4.1,安裝路徑為C:\program files;建立了數(shù)據(jù)庫TEST,其中用戶名為SYSTEM,口令為MANAGER。實驗二中,我們利用查詢交互工具is

13、qlw,在數(shù)據(jù)庫TEST中建立起基本表STUDENT。我們還需要在SQL Server中預(yù)先建立基本表STUDENT。</p><p>  在本實驗中,我們將編寫程序連接兩個不同RDBMS的數(shù)據(jù)源,將Kingbase數(shù)據(jù)庫中的STUDENT表中的數(shù)據(jù)備份到SQL Server數(shù)據(jù)庫的STUDENT中。</p><p>  2.在VC++6.0環(huán)境中編程實現(xiàn)訪問數(shù)據(jù)庫。</p>

14、<p><b>  實驗預(yù)備。</b></p><p>  本實驗源程序名為ODBCTest,代碼在《數(shù)據(jù)庫系統(tǒng)概論》書中已經(jīng)給出。下面我們將在VC++6.0環(huán)境下對該程序進行編譯。</p><p><b>  實驗步驟。</b></p><p>  首先,在VC++6.0中新建一個Win32 Console

15、Application的項目,并將項目命名為ODBCTest。</p><p>  然后,將已經(jīng)寫好的ODBCTest.c文件加入到該項目的Source Files中,編譯并且執(zhí)行。執(zhí)行完成后,SQL Server中Student表的數(shù)據(jù)即為Kingbase中Student表的數(shù)據(jù)備份。</p><p>  實驗源代碼。以下為本實驗實際程序的源碼,并給出了一些注釋,供參考。</p&g

16、t;<p>  #include <stdlib.h></p><p>  #include <stdio.h></p><p>  #include <windows.h></p><p>  #include <sql.h></p><p>  #include <sql

17、ext.h></p><p>  #include <Sqltypes.h></p><p>  #define SNO_LEN 30</p><p>  #define NAME_LEN 50</p><p>  #define DEPART_LEN 100</p><p>  #define SS

18、EX_LEN 5</p><p>  int main()</p><p><b>  {</b></p><p>  /* Step 1 定義句柄和變量 */</p><p>  //以king開頭的表示的是連接KINGBASEES的變量</p><p>  //以server開頭的表示的是連接

19、SQLSERVER的變量</p><p>  SQLHENV kinghenv, serverhenv; //環(huán)境句柄</p><p>  SQLHDBC kinghdbc,serverhdbc; //連接句柄</p><p>  SQLHSTMT kinghstmt,serverhstmt; //語句句柄</p><

20、p>  SQLRETURNret;</p><p>  SQLCHAR sName[NAME_LEN], sDepart[DEPART_LEN],sSex[SSEX_LEN],sSno[SNO_LEN];</p><p>  SQLINTEGER sAge;</p><p>  SQLINTEGER cbAge = 0, cbSno =

21、SQL_NTS, cbSex = SQL_NTS,cbName = SQL_NTS,cbDepart = SQL_NTS;</p><p>  /* Step 2 初始化環(huán)境 */</p><p>  ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &kinghenv);</p><p>  re

22、t = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &serverhenv);</p><p>  ret = SQLSetEnvAttr(kinghenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);</p><p>  ret = SQLSetEnvAttr(serverhe

23、nv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);</p><p>  /* Step 3 :建立連接 */</p><p>  ret = SQLAllocHandle(SQL_HANDLE_DBC, kinghenv, &kinghdbc);</p><p>  ret = SQLAllocHandle

24、(SQL_HANDLE_DBC, serverhenv, &serverhdbc);</p><p>  ret = SQLConnect(kinghdbc,</p><p>  "KingbaseES ODBC",SQL_NTS,</p><p>  "SYSTEM",SQL_NTS,</p><

25、p>  "MANAGER",SQL_NTS);</p><p>  if (!SQL_SUCCEEDED(ret))//連接失敗時返回錯誤值</p><p>  return -1;</p><p>  ret = SQLConnect(serverhdbc,</p><p>  "SQLServer&

26、quot;,SQL_NTS,</p><p>  "sa",SQL_NTS,</p><p>  "sa",SQL_NTS);</p><p>  if (!SQL_SUCCEEDED(ret))//連接失敗時返回錯誤值</p><p>  return -1;</p><p&g

27、t;  /* Step 4 :初始化語句句柄 */</p><p>  ret = SQLAllocHandle(SQL_HANDLE_STMT, kinghdbc, &kinghstmt);</p><p>  ret = SQLSetStmtAttr(kinghstmt,SQL_ATTR_ROW_BIND_TYPE,(SQLPOINTER)SQL_BIND_BY_COLUMN,

28、SQL_IS_INTEGER );</p><p>  ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, &serverhstmt);</p><p>  /* Step 5 :兩種方式執(zhí)行語句 */</p><p>  /* 預(yù)編譯帶有參數(shù)的語句 */</p><p>  ret =

29、 SQLPrepare(serverhstmt,"INSERT INTO STUDENT (SNO,SNAME,SSEX,SAGE,SDEPT) VALUES (?, ?, ?, ?, ?)", SQL_NTS);</p><p>  if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) </p><p><

30、;b>  {</b></p><p>  ret = SQLBindParameter(serverhstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, SNO_LEN, 0, sSno, 0, &cbSno); </p><p>  ret = SQLBindParameter(serverhstmt, 2, SQL_P

31、ARAM_INPUT, SQL_C_CHAR,SQL_CHAR, NAME_LEN, 0, sName, 0, &cbName);</p><p>  ret = SQLBindParameter(serverhstmt, 3, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 2, 0, sSex, 0, &cbSex);</p><p>  

32、ret = SQLBindParameter(serverhstmt, 4, SQL_PARAM_INPUT, SQL_C_LONG,SQL_INTEGER, 0, 0, &sAge, 0, &cbAge);</p><p>  ret = SQLBindParameter(serverhstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, DEPART_L

33、EN, 0, sDepart, 0, &cbDepart);</p><p><b>  }</b></p><p>  /*執(zhí)行SQL語句*/</p><p>  ret = SQLExecDirect(kinghstmt,"SELECT * FROM STUDENT",SQL_NTS);</p>&

34、lt;p>  if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) </p><p><b>  {</b></p><p>  ret = SQLBindCol(kinghstmt, 1, SQL_C_CHAR,sSno,SNO_LEN, &cbSno);</p><p>

35、;  ret = SQLBindCol(kinghstmt, 2, SQL_C_CHAR, sName, NAME_LEN, &cbName);</p><p>  ret = SQLBindCol(kinghstmt, 3, SQL_C_CHAR, sSex, SSEX_LEN, &cbSex);</p><p>  ret = SQLBindCol(kinghstmt,

36、 4, SQL_C_LONG, &sAge, 0, &cbAge);</p><p>  ret = SQLBindCol(kinghstmt, 5, SQL_C_CHAR, sDepart, DEPART_LEN, &cbDepart);</p><p><b>  }</b></p><p>  /* Step 6

37、:處理結(jié)果集并執(zhí)行預(yù)編譯后的語句*/</p><p>  while ((ret=SQLFetch(kinghstmt)) !=SQL_NO_DATA_FOUND) </p><p><b>  {</b></p><p>  if(ret== SQL_ERROR)</p><p>  printf("Fetc

38、h error\n");</p><p>  else ret=SQLExecute(serverhstmt); </p><p><b>  }</b></p><p>  /* Step 7 中止處理*/</p><p>  SQLFreeHandle(SQL_HANDLE_STMT,kinghstmt

39、);</p><p>  SQLDisconnect(kinghdbc);</p><p>  SQLFreeHandle(SQL_HANDLE_DBC, kinghdbc);</p><p>  SQLFreeHandle(SQL_HANDLE_ENV,kinghenv);</p><p>  SQLFreeHandle(SQL_HANDL

40、E_STMT, serverhstmt);</p><p>  SQLDisconnect(serverhdbc);</p><p>  SQLFreeHandle(SQL_HANDLE_DBC, serverhdbc);</p><p>  SQLFreeHandle(SQL_HANDLE_ENV, serverhenv);</p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論