數據庫的連接串
數據庫連接字符串的拼寫規則的決定條件:
- 連接的數據庫的類型:SQL Server,Oracle,MySQL,Acess,MogoDB,Visual FoxPro(dBASE),Excel
- 數據庫驅動器:ODBC,OLE DB
- 連接的模式:標准連接(Standard Security),信任連接(Trusted connection)
- 網絡協議:TCP/IP,Named Pipes
名稱 網絡協議庫
dbnmpntw Win32 Named Pipes
dbmssocn Win32 Winsock TCP/IP
dbmsspxn Win32 SPX/IPX
dbmsvinn Win32 Banyan Vines
dbmsrpcn Win32 Multi-Protocol (Windows RPC)
連接參數表
名稱 | 描述 |
Application Name | 應用程序名稱或者當沒有提供應用程序時為.Net SqlClient數據提供者 |
Data Source||Server||Address||Addr||Network Address | 要連接的SQL Server實例的名字或者網絡地址 |
Initial Catalog||Database | 數據庫名 |
Integrated Security||Trusted_Connection | 連接是否為信任連接 |
Uid或User ID | SQL Server登錄用戶 |
Password或Pwd | SQL Server帳戶登錄口令 |
Connect Timeout或者Connection Timeout | 在中止連接請求,產生錯誤之前等待服務器連接的時間(以秒為單位) |
Pooling | 從合適的連接池中取出SQLConnection對象,或者必要時創建SQLConnection對象並把它增加到合適的連接池中 |
Max Pool Size | 連接池中允許的最大連接數 |
Min Pool Size | 連接池中允許的最小連接數 |
AttachDBFilename或者extended properties或者Initial File Name | 主要文件的名字,包括相關聯數據庫的全路徑 |
Connection Lifetime | 當一個連接返回到連接池,當前時間與連接創建時間的差值,如果時間段超過了指定的連接生存時間,此連接就被破壞。它用於聚集設置中在運行服務器和准備上線的服務器之間強制負載平衡。 |
Connection Reset | 當連接從連接池移走時決定是否重置數據庫連接。當設置為''false''時用於避免獲得連接時的額外服務器往復代價。 |
Current Language | 語言記錄名稱 |
Enlist | 連接池自動列出創建線程的當前事務上下文中的連接 |
Network Library或Net ''dbmssocn'' | 網絡庫用於建立與一個 SQL Server實例的連接。值包括dbnmpntw (命名管道), dbmsrpcn (多協議), dbmsadsn (Apple Talk), dbmsgnet (VIA), dbmsipcn (共享內存) 和 dbmsspxn (IPX/SPX), 和 dbmssocn (TCP/IP). 所連接的系統必須安裝相應的動態鏈接庫。如果你沒有指定網絡,當你使用一個局部的服務器 (例如, "." 或者 "(local)"),將使用共享內存 |
Packet Size | SQL Server的一個實例通訊的網絡包字節大小 |
Workstation ID | 連接到SQL Server的工作站名稱 |
Persist Security Info | 當連接已經打開或者一直處於打開狀態時,敏感性的安全信息 (如口令)不會返回作為連接的一部分信息。 Pooling ''true'' 為真時,從合適的連接池中取出SQLConnection對象,或者必要時創建SQLConnection對象並把它增加到合適的連接池中 |
一, Sql Server
· ODBC
o 標准連接(Standard Security):
1)當服務器為本地時Server可以使用(local):"Driver={SQLServer};Server=(local);Database=pubs;Uid=sa;Pwd=123456"
2)當連接遠程服務器時,需指定地址、端口號和網絡庫:"Driver={SQL Server};Server=180.166.105.142,2433;Database=pubs;Uid=sa;Pwd=123456"
o 信任連接(Trusted connection): (Microsoft Windows NT 集成了安全性)
"Driver={SQL Server};Server=Aron1;Database=pubs;Trusted_Connection=yes"或者"Driver={SQL Server};Server=Aron1;Database=pubs; Uid=;Pwd="
· OLE DB, OleDbConnection (.NET)
o 標准連接(Standard Security):
"Provider=sqloledb;Data Source=192.168.1.100,2433;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=M8BGRdafaRUpkYZ1OqyS"
o 信任連接(Trusted connection):
"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI"
(如果連接一個具體的已命名SQLServer實例,使用Data Source=Servere Name\Instance Name;但僅適用於 SQLServer2000)例如:”Provider=sqloledb;Data Source=MyServerName\MyInstanceName;Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;”
o 通過IP地址連接:
"Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd"
(DBMSSOCN=TCP/IP代替Named Pipes, Data Source的末尾是需要使用的端口號(缺省為1433))
二,Access
· ODBC
o 標准連接(Standard Security):
"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;"
o 獨占方式(Exclusive):
"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd="
· OLE DB, OleDbConnection (.NET)
o 標准連接(Standard Security):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"
o 組連接 (系統數據庫)
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:System Database=system.mdw;","admin", ""
o 帶口令的連接:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;","admin", ""
三,Oracle
· ODBC
"Driver={Microsoft ODBC for oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"
· OLE DB, OleDbConnection (.NET)
o 標准連接(Standard Security):
Microsoft的格式
“Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"
Oracle的格式
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"
注意:"Data Source=" 必須根據相應的命名方法設置為Net8名稱。例如對於局部命名,它是tnsnames.ora中的別名,對於Oracle命名,它是Net8網絡服務名
o 信任連接(Trusted Connection):
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"或者設置user ID為 "/"
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;"
· oracleConnection (.NET)
o 標准連接:
"Data Source=Oracle8i;Integrated Security=yes";(這只對Oracle 8i release 3或更高版本有效)
o MS Data Shape:
"Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw"
四, MySQL
· ODBC
o 本地數據庫:
"Driver={mySQL};Server=mySrvName;Option=16834;Database=mydatabase;" (Sever參數也可以使用localhost作為其值)
o 遠程數據庫:
"Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=my-database;Uid=username;Pwd=password;"
Option值 取值的含義
1 客戶端不能處理MyODBC返回一列真實寬度的情況
2 客戶端不能處理MySQL返回影響的行的真實值的情況如果設置此標志,MySQL返回’found rows’。 MySQL 3.21.14或更新版才能生效
4 在c:\myodbc.log中生成一個調試日志。這與在`AUTOEXEC.BAT''中的設置MYSQL_DEBUG=d:t:O,c::\myodbc.log相同
8 對於結果和參數不設置任何包限制
16 不使驅動器彈出問題
32 使用或去除動態游標支持。這在MyODBC 2.50中是不允許的
64 在''database.table.column''中忽略數據庫名字的使用
128 強制使用ODBC管理器游標
256 去除擴展取值(fetch)的使用
512 充滿char字段滿長度
1024 SQLDescribeCol()函數返回完全滿足條件的列名
2048 使用壓縮的服務器/客戶端協議
4096 告訴服務器在函數后和''(''前忽略空格 (PowerBuilder需要)。這將產生所有函數名關鍵詞
8192 使用命名管道連接運行在NT上的Mysqld服務器
16384 將LONGLONG列改為INTl列(有些應用不能處理LONGLONG列)
32768 從SQLTables中返回’user’作為Table_qualifier和Table_owner
66536 從客戶端讀參數,從`my.cnf''讀ODBC群
131072 增加一些額外的安全性檢查
如果你需要許多選項,你應該把以上標志相加。
· OLE DB, OleDbConnection (.NET)
o 標准連接:
"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;"
Data Source是MySQL數據庫的名字,也可以使用server=localhost;DB=test
· MySqlConnection (.NET)
o eInfoDesigns.dbProvider:
"Data Source=server;Database=mydb;User ID=username;Password=pwd;Command Logging=false"
只適用於 eInfoDesigns dbProvider, 附加到 .NET
五,Interbase
· ODBC, Easysoft
o 本地計算機:
"Driver={Easysoft IB6 ODBC};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password"
o 遠程計算機:
"Driver={Easysoft IB6 ODBC};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"
· ODBC, Intersolv
o 本地計算機:
"Driver={INTERSOLV InterBase ODBC Driver (*.gdb)};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password"
o 遠程計算機:
"Driver={INTERSOLV InterBase ODBC Driver (*.gdb)};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"
這個驅動器現在由 DataDirect Technologies來提供 (以前由Intersolv提供)
六, OLE DB, SIBPROvider
o 標准連接:
"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey"
o 指定字符集:
"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;character set=ISO8859_1"
o 指定角色:
"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;role=DIGITADORES"
· 需要了解更多請鏈接到Interbase的如下Borland開發者網絡文章http://community.borland.com/article/0,1410,27152,00.html
七,IBM DB2
· OLE DB, OleDbConnection (.NET) from ms
o TCP/IP:
"Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=XXX.XXX.XXX.XXX;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW"
o APPC:
"Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW"
AS400
· ODBC
" Driver={Client Access ODBC Driver (32-bit)};System=myAS400;Uid=myUsername;Pwd=myPassword"
· OLE DB, OleDbConnection (.NET)
"Provider=IBMDA400;Data source=myAS400;User Id=myUsername;Password=myPassword;"
八,Sybase
· ODBC
o Sybase System 12 (或 12.5) Enterprise Open Client標准連接:
"Driver={SYBASE ASE ODBC Driver};Srvr=Aron1;Uid=username;Pwd=password"
o Sybase System 11標准連接:
"Driver={SYBASE SYSTEM 11};Srvr=Aron1;Uid=username;Pwd=password;"
o Intersolv 3.10:
"Driver={INTERSOLV 3.10 32-BIT Sybase};Srvr=Aron1;Uid=username;Pwd=password;"
o Sybase SQL Anywhere (以前為Watcom SQL ODBC driver):
"ODBC; Driver=Sybase SQL Anywhere 5.0; DefaultDir=c:\dbfolder\;Dbf=c:\mydatabase.db;Uid=username;Pwd=password;Dsn="""""
注意: 對於在末尾緊跟着DSN 參數被引用的雙引號(VB語法), 你必須改變符合你所使用的語言所指定的引用符號語法。DSN參數為空實際上非常重要,如果不包括的話將導致7778錯誤。
· OLE DB
o Adaptive Server Anywhere (ASA):
"Provider=ASAProv;Data source=myASA"
o Adaptive Server Enterprise (ASE)(帶數據源為.IDS文件):
"Provider=Sybase ASE OLE DB Provider; Data source=myASE"
注意你必須使用數據管理器來創建一個數據源.IDS文件.這些.IDS 文件類似於ODBC DSNs.
九, Visual FoxPro(dBASE)
· ODBC
o dBASE:
" Driver={Microsoft dBASE Driver (*.dbf)}; DriverID=277;Dbq=c:\\DatabasePath"
注意在書寫sql語句時必須指定文件名(如“Select Name, Address From Clients.dbf”).
o Visual Foxpro(有數據庫容器):
" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBC;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No "
o Visual Foxpro(無數據庫容器):
" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBF;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No"
· OLE DB, OleDbConnection (.NET)
o 標准連接:
"Provider=vfpoledb;Data Source=C:\\DatabasePath\\MyDatabase.dbc;"
十,Excel
· ODBC
o 標准連接(Standard Security):
" Driver={Microsoft Excel Driver (*.xls)};DriverId=790; Dbq =C:\\DatabasePath\\DBSpreadSheet.xls;DefaultDir=c:\\databasepath;"
· OLE DB Provider for Microsoft Jet
o 標准連接(Standard Security):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DatabasePath\\DBSpreadSheet.xls;Extended Properties=\"\"Excel 8.0;HDR=Yes;\"\";"
注意:如果"HDR=Yes",那么提供者不會在記錄集中包括選擇的第一行,如果,那么提供者將在記錄集中包括單元范圍(或已經命名范圍)的第一行
十一,Text
· ODBC
o 標准連接(Standard Security):
" Driver={Microsoft Text Driver (*.txt; *.csv)}; Dbq=C:\\DatabasePath\\;Extensions=asc,csv,tab,txt;"
如果文本文件使用tab作為分隔符,你必須創建schema.ini文件,你必須在連接串中使用Format=TabDelimited選項。
注意:你必須在sql語句中指定文件名(例如"Select Name, Address From Clients.csv")
· OLE DB Provider for Microsoft Jet
o 標准連接(Standard Security):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DatabasePath\\;Extended Properties=\"\"text;"HDR=Yes;FMT=Delimited;\"\";"
注意在書寫sql語句時必須指定文件名(如“Select Name, Address From Clients.txt”).
ODBC DSN
" DSN=MyDSN;Uid=MyUsername;Pwd=MyPassword;"
OLE DB Provider for ODBC Databases
使用DSN進行連接:
"Provider=MSDASQL;PersistSecurityInfo=False;Trusted_Connection=Yes;Data Source=MyDSN;catalog=MyDatabase;"
OLE DB Provider for OLAP
"Provider=MSOLAP;Data Source=MyOLAPServerName;Initial Catalog=MyOLAPDatabaseName;"