Windows數據庫編程接口簡介

數據庫是計算機中一種專門管理數據資源的系統,目前幾乎所有軟件都需要與數據庫打交道(包括操作系統,比如Windows上的注冊表其實也是一種數據庫),有些軟件更是以數據庫為核心因此掌握數據庫系統的使用方法以及數據庫系統編程接口的使用方法是程序員非常重要的基本技能之一。所以我花了一定的時間學習了在Windows平臺上使用COM接口的方式操作數據庫。這段時間我會將自己學習過程中掌握的知識和其中的一些坑都發布出來,供個人參考,也方便他人學習

現在常見的DBMS主要有ORACLE、Sybase、Informix、DB2、Sql Server、Access、Visual Foxpro、MySql。由于目前我主要是在學習Windows平臺上的編程技巧,所以這系列的內容將會以Windows平臺為主,所以數據庫選擇了Sql Server,編程接口主要是ADO和OELDB.

Windows平臺常見的數據庫編程組件

目前Windows平臺上主要使用的是ODBC、DAO、RDO、ADO、ADO.NET、OLEDB。
其他的數據庫編程接口由于被微軟棄用或者使用人數較少,等等原因我并沒有關心他們,目前主要學習的是OLEDB和ADO編程。由于ADO是針對OLEDB進行的在封裝的ActiveX控件,掌握了OLEDB,再學習ADO就沒有什么難度了,所以我將重點放在OLEDB上,而對于ADO只會簡單的進行簡單的步驟說明。

OLEDB的基本概念

  1. 數據提供者和數據消費者:在OLEDB中將接口兩端的軟件分別稱為數據提供者(一般指數據庫這一端,著重與數據的組織存儲)和數據消費者(指應用程序這一端,著重與數據庫數據的展示與使用)。OELDB是一種針對兩頭的編程接口,它為數據提供者和消費者分別準備了一組接口,數據提供者主要實現一些接口,用于將數據庫中的數據輸出到應用程序或者根據應用程序的指令完成數據的操作,而數據消費者主要使用其中提供的編程接口,實現數據的獲取或者更新等操作。(我覺得他們二者之間的關系就像是有一套標準的COM接口,一個負責調用,一個負責實現)從本質上說,OLEDB其實就是一個標準的數據庫與應用系統間的數據標準交換接口,它的好處就是高效,通用和靈活。
  2. 數據源:一般來講數據源可以理解為數據提供者或者理解為各個DBMS,但是在ADO中,數據源可以是文本文件,excel或者xml文件

MSDAC簡介

MSDAC(Microsoft Data Access Components)微軟數據庫訪問組件,目前MSDAC上主要有ADO、OLEDB、ODBC
在Windows的MSDN中提供了完整的MSDAC幫助文檔,在MSDN中,選擇“目錄”-->"Win32和COM開發"-->"Data Access And Storage"-->"Windows Data Access Components SDK"中。它的下層目錄就是各種組件的詳細文檔,它的整體結構如下:
SDK幫助文檔

OLEDB編程的基本思路

OLEDB編程的基本步驟如下:
OLEDB編程步驟

  1. 首先創建數據源對象,指定鏈接數據庫的相關屬性,鏈接到數據庫
  2. 接著創建會話對象
  3. 根據回話對象創建出Command對象
  4. 利用Command對象執行SQL語句,并返回結果集對象
  5. 讀取結果集對象中的數據,并輸出
  6. 最后關閉所有對象接口,關閉數據庫連接
    這些東西在后面的內容中會一一進行詳細的說明,這篇博文就這樣只開個頭。

轉載于:https://www.cnblogs.com/lanuage/p/8214923.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453733.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453733.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453733.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

映客都是互刷禮物嗎_映客互刷禮物有什么用_映客守護有什么用

一起直播、互刷禮物、改ID發性感照,趙本山女375x332 - 122KB - PNG一起直播、互刷禮物、改ID發性感照,趙本山女600x893 - 247KB - JPEG一起直播、互刷禮物、改ID發性感照,趙本山女600x448 - 151KB - JPEG土豪互刷禮物嚇壞男主播 即興表演鐵頭功撞墻560x688 - 57KB - JPEG一起直…

Python 之打包工具 setup.py

1. 為什么需要對項目分發打包? 平常我們習慣了使用 pip 來安裝一些第三方模塊,這個安裝過程之所以簡單,是因為模塊開發者為我們默默地為我們做了所有繁雜的工作,而這個過程就是 打包。 打包,就是將你的源代碼進一步封…

周進度----06

周學習進度06 周學習進度06 第16周 所花時間: 60min60min100min100min100min100min90min60min60min 代碼量(行) 500-800 博客量(篇) 4 了解到的知識 css樣式表的一些知識 項目流程的初步了解 一周的學習心得…

八個實用的CMD命令及開始→運行→命令集錦

這篇文章是很久前收藏在自己筆記本內的,具體的來源地址不清楚,先謝一下原作者吧. 共享出來大家一起學習一下: 一,ping    它是用來檢查網絡是否通暢或者網絡連接速度的命令。作為一個生活在網絡上的管理員或者黑客來說,ping命令是第一個必須掌握的DO…

2019如何轉換2010_9102年,你還不知道PPT怎么轉換成視頻嗎?小心落伍了

你在刷抖音的時候有沒有刷過這類視頻:成為人生贏家必備的書單、5個讓你看透人性的電影、6個讓你升職加薪的APP...如果你細心觀察的話,會發現這類視頻的做法基本都是一個樣的,像在翻相冊一樣,一頁頁過去,所以它們也叫做…

深度學習之RetinaNet

總述 Focal loss主要是為了解決one-stage目標檢測中正負樣本比例嚴重失衡的問題。該損失函數降低了大量簡單負樣本在訓練中所占的權重,也可理解為一種困難樣本挖掘。 目標識別有兩大經典結構: 第一類是以Faster RCNN為代表的兩級識別方法,這種結構的第…

js生成圖片

var image new Image(); var c document.getElementById("myCanvas"); var ctx c.getContext("2d"); var img document.getElementById("scream"); ctx.font "10px Arial";function createImg(name, zuowei, color) {// 姓名ctx…

淺談如何學習linux

一.為什么要學linux? 當然最重要是愛好和興趣!如果你這種必要學,或者根本不喜歡,請不要浪費時間,你學也學不好! 二.起步 你應該為自己創造一個學習linux的環境--在電腦上裝一個linux或unix 問題1:版本…

python的datetime函數_Python連載8-datetime包函數介紹

一、datetime包(上接連載7內容)1.函數:datetime(1)用法:輸入一個日期,來返回一個datetime類?(2)格式:datetime.datetime(年,月,日,hour,minute,second)其中hour,minute,…

深度學習之 soft-NMS

論文:《Improving Object DetectionWith One Line of Code》soft-NMS 英文論文鏈接:https://arxiv.org/pdf/1704.04503.pdfsoft-NMS github 鏈接:https://github.com/bharatsingh430/soft-nms 絕大部分目標檢測方法,最后都要用到…

項目微管理 - 總結也是新的開始

時間都去哪了?聽著這首耳熟能詳的旋律,感嘆著飛速流逝的年華,我漸漸的陷入到沉思之中。時間過的真的很快,從一名程序員到接手一個一線項目團隊一晃已經2年多了。在這段時間里,我接觸了各種各樣的人,處理了各…

一維二維_Excel二維數據轉一維,2種方法輕松搞定

今天是2020年1月1日,祝各位小伙伴們新年快樂,開心每一天~如下所示,左邊是二維交叉數據表,我們希望快速轉換成右邊的一維數據表如果復制粘貼,效率太低了,今天分享兩種方法,實現快速轉換1、powerq…

數百種 Windows 軟件的免費替代品列表

程序所執行任務的描述WindowsLinux1) 網絡連接網頁瀏覽器微軟 IE,網景 Netscape / Mozilla, Opera [私有],Firebird,……1) Netscape/Mozilla 2) Galeon. 3) Konqueror. 4) Opera.[私有] 5) Firebird. 6) Nautilus 7) Epiphany 8)…

深度學習之 Cascade R-CNN

Zhaowei Cai, Nuno Vasconcelos. 《Cascade R-CNN: Delving into High Quality Object Detection》. CVPR 2018.論文鏈接:https://arxiv.org/abs/1712.00726代碼鏈接:https://github.com/zhaoweicai/cascade-rcnn 前言 IOU閾值被用來定義正負例&#x…

轉換文檔參數_明明2秒可以搞定Word、Excel相互轉換,你卻用了半小時!真虧了...

我們在用office三件套工作的時候,經常都需要對文件的格式進行轉換,像是Word文檔和Excel表格的轉換,很多小伙伴都要花上半個小時甚至以上的時間才能搞定,效率實在不行。別擔心,今天小編將分享能快速完成Word、Excel轉換…

深度學習之 DCN(Deformable Convolution)-可變形卷積

Paper link: http://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Deformable_Convolutional_Networks_ICCV_2017_paper.pdfhttps://arxiv.org/pdf/1703.06211 Code link: https://github.com/msracver/Deformable-ConvNets Abstract 如何有效地對幾何圖形的變化進行…

軟件開發 項目進展 軟件架構 指南

軟件開發,標準化流水線式開發的實施構想 軟件開發,標準化流水線式開發的實施構想 近日看到一篇博文,討論標準化流水線開發模式的話題,但是這篇博文僅僅提出這個問題,未見回應。 這其實是一個很大的問題,我…

linux 下php多版本安裝

php-multi-version ubuntu apt-get 安裝php5.6 添加軟件源sudo add-apt-repository ppa:ondrej/php sudo apt-get updatesudo apt-get install php5.6sudo apt-get install php5sudo apt-get install php7 /usr/local/bin 與/usr/bin echo $PATH/usr/local/sbin:/usr/local/bin…

c++ 舞伴配對問題_挑戰新物體描述問題,視覺詞表解決方案超越人類表現

編者按:最近,研究者們發布了 nocaps 挑戰,用以測量在沒有對應的訓練數據的情況下,模型能否準確描述測試圖像中新出現的各種類別的物體。針對挑戰中的問題,微軟 Azure 認知服務團隊和微軟研究院的研究員提出了全新解決方…

深度學習之雙線性插值(Bilinear interpolation)

1. 什么是插值 Interpolation is a method of constructing new data points within the range of a discrete set of known data points. Image interpolation refers to the“guess”of intensity values at missing locations. 圖片放大是圖像處理中的一個特別基礎的操作。…