跳轉到內容

Visual Basic/資料庫

來自華夏公益教科書,自由的教學叢書

資料庫管理本身就是一個很大的主題,這本書無法涵蓋,而且會分散對VB Classic程式設計的重點。不過,我們可以解釋連線到資料庫、從資料庫檢索資訊等基本知識。

從VB連線到資料庫的常用方法是使用ADO(ActiveX Data Objects)。

連線到資料庫通常使用連線字串。以下是一些連線到常用資料庫型別的連線字串示例

A

ACCESS

ODBC

標準安全

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=; 


工作組

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw; 


獨佔

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=; 


啟用管理語句 要啟用某些程式化管理功能,如CREATE USER、CREATE GROUP、ADD USER、GRANT、REVOKE和DEFAULTS(在建立CREATE TABLE語句時),請使用此連線字串。

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;ExtendedAnsiSQL=1; 

指定區域設定識別符號 使用此識別符號指定區域設定識別符號,這有助於處理非美國格式的日期。

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Locale Identifier=2057;Uid=Admin;Pwd=; 

以上示例使用en-gb區域設定識別符號(2057)。


OLE DB, OleDbConnection (.NET)

[編輯 | 編輯原始碼]

標準安全

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=; 


使用資料庫密碼 這是在使用Access中的設定資料庫密碼功能保護Access資料庫時使用的連線字串。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword; 


工作組(系統資料庫)

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw; 


指定使用者名稱和密碼的工作組(系統資料庫)

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword; 

DataDirectory功能

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\myDatabase.mdb;User Id=admin;Password=; 

ACCESS 2007 標準安全

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

使用資料庫密碼

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Jet OLEDB:Database Password=MyDbPassword;

Datadirectory功能

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Persist Security Info=False;


E

Excel檔案

ODBC

Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyExcel.xls;DefaultDir=c:\mypath;

備註

SQL syntax "SELECT * FROM [sheet1$]". -- i.e. excel worksheet name followed by a "$" and wrapped in "[" "]" brackets. 


OLEDB

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

重要提示!

字串中的引號“需要使用特定語言的轉義語法進行轉義。

c#, c++   \"
VB6, VBScript   ""
xml (web.config etc)   "
or maybe use a single quote '.

"HDR=Yes;"表示第一行包含列名,而不是資料。 "HDR=No;"表示相反的意思。

"IMEX=1;"告訴驅動程式始終將“混合”(數字、日期、字串等)資料列讀為文字。請注意,此選項可能會對Excel工作表寫入訪問產生負面影響。

SQL syntax "SELECT * FROM [sheet1$]". -- i.e. Excel worksheet name followed by a "$" and wrapped in "[" "]" brackets.

檢視[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]中的登錄檔REG_DWORD "TypeGuessRows"。這是讓Excel不只使用前8行來猜測列資料型別的關鍵。將此值設定為0以掃描所有行。這可能會影響效能。如果Excel工作簿受密碼保護,即使使用連線字串提供正確的密碼,您也無法開啟它進行資料訪問。如果您嘗試,您將收到以下錯誤訊息:“無法解密檔案”。


Excel 2007檔案

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
前一頁: Windows_Dialogs 目錄 下一頁: Windows_API
華夏公益教科書