通過odbc api實現對資料庫的訪問
鄭瑜
自從初次接觸到vckbase,在裡面學了很多東西,這跟大家無私的奉獻是離不開的。在資料庫方面的技術文章中,很多篇幅是用來介紹ado或者dao的訪問方式,而關於用odbc api訪問資料庫的文章卻少之又少。雖然用odbc訪問資料庫比較麻煩,但卻很靈活,效率高,又便於了解ado、dao的底層封裝方式,對提公升整體軟體思想是很有好處的。
現在就資料庫的操作型別來談談odbc api的使用。
1、配置資料來源。例:
sqlreturn retcode;2、連線資料庫。連線資料庫看似要寫的很多,其實只要寫一次以後,僅僅複製一下,改下資料庫名、使用者名稱和密碼即可。例:retcode = sqlconfigdatasource(null,odbc_add_sys_dsn,"sql server",
"dsn=master/0server=(local)/0database=master/0/0");
if(!retcode)
retcode = sqlallochandle(sql_handle_env, sql_null_handle, &henv) ;3、表操作。連線完資料庫後,可以在資料庫中執行sql語句來實現對資料庫表的查詢。其具體操作型別又可以分成刪除表、建立表、修改表等。例:if (retcode == sql_success || retcode == sql_success_with_info)
else
}
else
}
else
}
else
bool cdboperator::createtable(cstring strsql)4、表紀錄的操作。連線完資料庫後,將指定的變數與相應表中的某個字段關聯在一起,在資料庫中執行sql語句來實現對資料庫表的查詢。其具體操作型別又可以分成插入表紀錄、更新表紀錄、查詢表紀錄、刪除表紀錄等。注意關聯的時候,變數型別必須與表字段的資料型別鄉一致,詳情可檢視msdn。例:else
}
else
}
bool cdboperator::getuseridfromobj_user(int arruserid, int& nusercount)注意:在sql server資料庫中,master資料庫是占有統治地位的,它紀錄了所有資料庫的建立資訊。故在建立乙個新的資料庫之前可以通過連線matser資料庫,並在master資料庫中執行建立資料庫的sql語句來建立乙個新的資料庫。為了防止資料庫的重複建立,必須在建立之前判斷你所建立的資料庫是否已經存在。如果存在的話,則退出;否則建立新的資料庫。matster資料庫中其中有張表sysdatabases紀錄了所有已經建立的資料庫名。如果能夠在該表中查詢出該名字的資料庫,說明資料庫已經建立;否則,不建立資料庫。同時,master資料庫中有一張表sysobjects紀錄了所有資料庫的所有表名。所以可以通過查詢這個表來判斷你所建立的表是否已經存在。掌握了以上幾個要素,就可以動態建立資料庫。很神奇吧?while((sqlfetch(hstmt) == sql_success) || (sqlfetch(hstmt) == sql_success_with_info))
sqlfreehandle(sql_handle_stmt, hstmt);
returntrue;
} else
return true;
}
若想對odbc api訪問資料進一步了解,大家可以看看我的例子(例子僅僅是個模板,並沒有優化**)。其中,程式執行後,輸入使用者zhengyu和密碼4352729後即可建立完資料庫,就這麼方便。大家也可以給我發郵件跟我交流。
執行結果如下:
通過ASP實現flash對資料庫的訪問
近來 需要在flash中提取資料庫中的資料,從網上找了一點資料,今天下午在自己的機器上實現了一下,還是比較簡單的。環境 adobe flash cs4,vs2008 access2003 實現步驟 1 建立asp.net頁面 testcommunicatewithflash.aspx,將頁面body...
ODBC API不能釋放Oracle資料庫連線
odbc api開啟資料庫連線,一般用 sqldriverconnect 關閉資料庫連線用 sqldisconnect 但是要精細控制,需要設定連線資料庫handle的屬性,比如比較普通的有版本號,超時時間等等。最近程式設計發現,用關閉資料庫還不能釋放。看樣子是釋放成功了,但用oracle的管理工具...
python通過excel對資料庫插入資料
1.需要有兩個包檔案xlrd及mysqldb 其他資料庫可以另外找 2.讀取excel檔案資訊 book xlrd.open workbook 檔案位址 3.建立mysql鏈結 database mysqldb.connect host ip user 使用者名稱 passwd 密碼 db 資料庫名...