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)。
標準安全
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 |