目錄
一、ado類
二、資料庫型別
1、access資料庫
2、sql資料庫
3、oracle資料庫
三、函式使用
3-1connect
引數說明
函式使用
3-2select
引數說明
函式使用--查詢
3-3getfieldbyindex
引數說明
3-4execsql
引數說明
函式使用---插入
函式使用---刪除
函式使用---修改
函式名函式說明
addparam
connect
連線資料庫
createproc
execproc
execsql
資料庫增、刪、改、查
getfieldtype
getfieldvalue
根據資料庫的欄位名獲取資料
getfieldmoney
getfieldbyindex
根據資料庫第幾條資料獲取資料
getfieldcount
getfieldname
getrecordcount
getlasterror
獲取資料操作失敗原因
getvalue
select
返回所有匹配資料的記錄
release
iseof
判斷資料庫是否為空
movenext
資料庫的指標指向當前資料的後乙個資料
moveprev
資料庫的指向當前資料的前乙個資料
movefirst
資料庫的指標指向第乙個資料
movelast
資料庫的指標指向最後乙個資料
dbt_access
dbt_sql
dbt_oracle
引數說明
etype
資料庫型別:dbt_access、dbt_sql、dbt_oracle
szdatabase
資料庫名字
szpass
密碼szuser
使用者名稱szhost
cadolx ado;
if(!ado.connect(cadolx::dbt_access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
引數
說明szsql
操作(lpctstr型別)
/*-----------------------無條件查詢---------------------------------*/
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
cstring szselect = _t("select *from access"); //查詢資料庫access表的全部資料
if(!ado.select(szselect))
afxmessagebox(ado.getlasterror());
/*獲取資料庫中所有的資料
1、判斷資料庫指標是否為空:iseof
2、讀取資料:getfieldbyindex
3、將資料庫指標移動到下乙個:movenext
*/while(!ado.iseof())
/*-----------------------有條件查詢---------------------------------*/
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
/*操作:select *from
表名:access
查詢:f_name\f_pass是資料表列名,'access'\'access'是資料表的某一條資料 and是兩者都要存在
*/cstring szselect = _t("select *from access where f_name='access' and f_pass='access'");
ado.select(szselect)
if(!ado.iseof())
afxmessagebox(_t("查詢資料失敗!"));
引數
說明nindex
資料庫中第幾列資料
tvalue
資料緩衝區
引數說明
szsql
操作(lpctstr型別)
/*-----------------------插入全部----------------------------------*/
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
/*插入的操作:insert into
表名:access
插入的資料:value括號內的資料,1001是數字 '姓名'是文字,用單引號 '2019-7-26'是日期,也用單引號
*/cstring szsql = _t("insert into access value(1001,'姓名','2019-7-26')");
if(0 > ado.execsql(szsql))
afxmessagebox(szsql);
/*-----------------------插入部分----------------------------------*/
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
/*插入的操作:insert into
表名:access
插入的資料:f_id\f_name是列名,表示要在那一列插入
value括號內的資料,1001是數字 '姓名'是文字,用單引號
*/cstring szsql = _t("insert into access (f_id,f_name) value(1001,'姓名')");
if(0 > ado.execsql(szsql))
afxmessagebox(szsql);
/*-------------------刪除表-------------------------*/
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
/*插入的操作:delete from
表名:access
刪除整個資料表
*/cstring szsql = _t("delete from access");
if(0 > ado.execsql(szsql))
afxmessagebox(szsql);
/*-------------------刪除一條資料-------------------------*/
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
/*插入的操作:delete from
表名:access
刪除整個資料表:f_id是列名,根據列名來刪除 %s是具體的某一條資料,不分數字、字串
*/cstring szsql = _t("delete from access where f_id = %s");
if(0 > ado.execsql(szsql))
afxmessagebox(szsql);
cadolx ado;
if(ado.connect(dbt::access,_t("./access.accdb")))
afxmessagebox(ado.getlasterror());
/*插入的操作:update 表名 set 更新的資料
表名:access
修改:f_id\f_name\f_time是要修改資料的列名 f_id是要修改的那一條資料 字串用單引號,數字不用
*/cstring szsql = _t("update access set f_id=1,f_name='access',f_time='2019-1-1' where f_id=1");
if(0 > ado.execsql(szsql))
afxmessagebox(szsql);
使用ADO或ADO控制項訪問資料庫
目錄 1 資料庫的基礎知識以及建立access資料庫 2 資料庫的介面 3 使用ado或ado控制項訪問資料庫 上篇文章,為大家講解了資料庫的介面,大家對ado也有了較為基礎的了解,這篇文章主要解決大家對ado的用處的疑惑。vb為使用者提供了很多訪問資料庫的方式 方法一 使用ado物件,通過編寫 訪...
使用ADO連線mysql資料庫
一.mysql connector odbc 2.連線字串為 driver server localhost database mydatabase user myusername password mypassword option 3 參考這個連線http www.connectionstrin...
ado讀取資料庫
當我們在使用ado運算元據庫的時候經常會碰到一些問題!例如資料庫為空我們就應該對是否為空做出判斷!variant t var var bstr t m precordset getcollect z controllersn if var.vt vt null else m list.setitem...