從HelloWorld啟航——資料庫連線字串的困惑

微wx笑發表於2015-09-15

程式設計師方陣

說起Hello World,不由得想起最近的抗戰勝利70週年閱兵;網路中走來的程式設計師方陣。

現在向我們走來的是程式設計師方陣!
他們穿著拖鞋,披著毛巾,
左手拿著鍵盤,右手舉著滑鼠,
腋下夾著USB轉換器。
他們因睡眠不足而顯得精神不振,
喊著微弱的口號走過主席臺。
主席問候:程式設計師們辛苦了!
程式設計師方隊異口同聲地答道:Hello World!

習大大的講話很給力:讓我們共同銘記歷史所啟示的偉大真理:正義必勝!和平必勝!人民必勝!

資料庫連線字串的困惑

  通常來說,第一個Hello World程式是無壓力的,個別開發環境安裝、配置起來可能比較吃力,就像前段時間Visual Studio推出Linux版本,我基於CentOS6.5安裝,結果需要升級GCC的版本,研究了半天也沒搞定!

  我最初學習的是VB.NET,學習網頁後臺開發,照著書中的例子學習的也還算順利;但到學習資料庫的時候就卡住了,當時是連線的ACCESS資料庫,具體遇到的錯誤已經不記得了,只大概的記得這問題搞了一兩個月也沒搞出來!當時是2003年左右,網路上能找到的東西也非常有限,不像現在一搜一大把的資料原始碼之類的;當時應該有一些知名的論壇了,不過那時候人比較傻,也不知道去找論壇發帖;不過英文也不好,也沒想到去外面看看!

  實在研究不通了,就放下了,先去研究點別的;過了大概一個多月吧,又回過頭來研究,結果很快搞通過了,連線資料庫成功了,突然覺得豁然開朗!

資料庫連線字串的組成

連線字串的是一個以分號為界,劃分鍵值引數對的列表。

驅動程式

之所以可以通過一個字串連線並運算元據庫,是因為有驅動程式的支援。
常見的驅動程式如下:

ODBC

  ODBC(Open Database Connectivity,開放資料庫互連)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關資料庫的一個組成部分,它建立了一組規範,並提供了一組對資料庫訪問的標準API(應用程式程式設計介面)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支援,使用者可以直接將SQL語句送給ODBC。

OLE DB

  OLE DB 是 Microsoft 的一個戰略性系統級程式設計介面,用於管理整個組織內的資料。OLE DB 是建立在 ODBC 功能之上的一個開放規範。ODBC 是為訪問關係型資料庫而專門開發的,OLE DB 則用於訪問關係型和非關係型資訊源,例如主機 ISAM/VSAM 和層次資料庫,電子郵件和檔案系統儲存,文字、圖形和地理資料以及自定義業務物件。OLE DB 定義了一組 COM 介面,對各種資料庫管理系統服務進行封裝,並允許建立軟體元件,實現這些服務。OLE DB 元件包括資料提供程式(包含和表現資料)、資料使用者(使用資料)和服務元件(處理和傳送資料,例如,查詢處理器和遊標引擎)。OLE DB 介面有助於平滑地整合元件,這樣,OLE DB 元件廠商就可以快速地向市場提供高質量 OLE DB 元件。此外,OLE DB 包含了一個連線 ODBC 的“橋樑”,對現用的各種 ODBC 關係型資料庫驅動程式提供一貫的支援。

JDBC

  JDBC(Java Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式,同時,JDBC也是個商標名。

比較

  目前,Microsoft 的 ODBC API 可能是使用最廣的、用於訪問關聯式資料庫的程式設計介面。它能在幾乎所有平臺上連線幾乎所有的資料庫。為什麼 Java 不使用 ODBC?對這個問題的回答是:Java 可以使用 ODBC,但最好是在 JDBC 的幫助下以JDBC-ODBC橋的形式使用,這一點我們稍後再說。現在的問題已變成:”為什麼需要 JDBC”?答案是顯然的:ODBC 不適合直接在 Java 中使用,因為它使用 C 語言介面。從Java 呼叫本地 C程式碼在安全性、實現、堅固性和程式的自動移植性方面都有許多缺點。從 ODBC C API 到 Java API 的字面翻譯是不可取的。例如,Java 沒有指標,而 ODBC 卻對指標用得很廣泛(包括很容易出錯的指標”void *”)。您可以將 JDBC 想象成被轉換為物件導向介面的 ODBC,而物件導向的介面對 Java程式設計師來說較易於接受。
ODBC 很難學。它把簡單和高階功能混在一起,而且即使對於簡單的查詢,其選項也極為複雜。相反,JDBC 儘量保證簡單功能的簡便性,而同時在必要時允許使用高階功能。啟用”純 Java “機制需要象 JDBC 這樣的 Java API。如果使用ODBC,就必須手動地將 ODBC 驅動程式管理器和驅動程式安裝在每臺客戶機上。如果完全用 Java 編寫 JDBC 驅動程式則 JDBC程式碼在所有 Java 平臺上(從網路計算機到大型機)都可以自 動安裝、移植並保證安全性。
總之,JDBC API 對於基本的 SQL 抽象和概念是一種自然的 Java 介面。它建立在 ODBC 上而不是從零開始。因此,熟悉 ODBC 的程式設計師將發現 JDBC 很容易使用。JDBC 保留了 ODBC 的基本設計特徵;事實上,兩種介面都基於 X/Open SQL CLI(呼叫級介面)。它們之間最大的區別在於:JDBC 以 Java 風格與優點為基礎並進行優化,因此更加易於使用。
目前,Microsoft 又引進了 ODBC 之外的新 API: RDO、 ADO 和OLE DB。這些設計在許多方面與 JDBC 是相同的,即它們都是物件導向的資料庫介面且基於可在 ODBC 上實現的類。但在這些介面中,我們未看見有特別的功能使我們要轉而選擇它們來替代 ODBC,尤其是在 ODBC 驅動程式已建立起較為完善的市場的情況下。它們最多也就是在 ODBC 上加了一種裝飾而已。

資料庫連結字串大全

SQL Server 2005

SQL Native Client ODBC Driver

標準安全連線
Driver={SQL Native Client};Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

受信的連線
Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
“Integrated Security=SSPI” 與 “Trusted_Connection=yes” 是相同的。

連線到一個SQL Server例項
指定伺服器例項的表示式和其他SQL Server的連線字串相同。
Driver={SQL Native Client};Server=myServerName/theInstanceName;Database=myDataBase; Trusted_Connection=yes;

指定使用者名稱和密碼
oConn.Properties(“Prompt”) = adPromptAlways Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase;

使用MARS (multiple active result sets)
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;MARS_Connection=yes;
“MultipleActiveResultSets=true”與MARS_Connection=yes”是相同的。
使用ADO.NET 2.0作為MARS的模組。 MARS不支援ADO.NET 1.0和ADO.NET 1.1。

驗證網路資料
Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;Encrypt=yes;

使用附加本地資料庫檔案的方式連線到本地SQL Server Express例項
Driver={SQL Native Client};Server=./SQLExpress; AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
為何要使用Database引數?如果同名的資料庫已經被附加,那麼SQL Server將不會重新附加。

使用附加本地資料資料夾中的資料庫檔案的方式連線到本地SQL Server Express例項
Driver={SQL Native Client};Server=./SQLExpress; AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname; Trusted_Connection=Yes;
為何要使用Database引數?如果同名的資料庫已經被附加,那麼SQL Server將不會重新附加。

資料庫映象
Data Source=myServerAddress; Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

SQL Native Client OLE DB Provider

標準連線
Provider=SQLNCLI;Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

受信的連線
Provider=SQLNCLI;Server=myServerAddress; Database=myDataBase;Trusted_Connection=yes;

連線到SQL Server例項
指定伺服器例項的表示式和其他SQL Server的連線字串相同。
Provider=SQLNCLI;Server=myServerName/theInstanceName; Database=myDataBase;Trusted_Connection=yes;

使用帳號和密碼
oConn.Properties(“Prompt”) = adPromptAlways oConn.Open “Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;

使用MARS (multiple active result sets)
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MarsConn=yes;
“MultipleActiveResultSets=true”和”MARS_Connection=yes”是相同的。
使用ADO.NET 2.0作為MARS的模組。 MARS不支援ADO.NET 1.0和ADO.NET 1.1。

驗證網路資料
Provider=SQLNCLI;Server=myServerAddress; Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;

使用附加本地資料庫檔案的方式連線到本地SQL Server Express例項

Provider=SQLNCLI;Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

使用附加本地資料資料夾中的資料庫檔案的方式連線到本地SQL Server Express例項

Provider=SQLNCLI;Server=./SQLExpress; AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

資料庫映象
Data Source=myServerAddress;Failover Partner=myMirrorServer; Initial Catalog=myDataBase;Integrated Security=True;

SqlConnection (.NET)

標準連線
Data Source=myServerAddress; Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

Standard Security alternative syntax
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

受信任的連線
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

Trusted Connection alternative syntax
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

連線到一個SQL Server的例項
指定伺服器例項的表示式和其他SQL Server的連線字串相同。
Server=myServerName/theInstanceName;Database=myDataBase;Trusted_Connection=True;

來自WinCE裝置的安全連線
Data Source=myServerAddress; Initial Catalog=myDataBase; Integrated Security=SSPI;User ID=myDomain/myUsername;Password=myPassword;
僅能用於CE裝置。

帶有IP地址的連線
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

使用MARS (multiple active result sets)
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; MultipleActiveResultSets=true;
使用ADO.NET 2.0作為MARS的模組。 MARS不支援ADO.NET 1.0和ADO.NET 1.1。

使用附加本地資料庫檔案的方式連線到本地SQL Server Express例項
Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

使用附加本地資料資料夾中的資料庫檔案的方式連線到本地SQL Server Express例項
Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

使用在SQL Server Express例項上的使用者例項
Data Source=./SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|/mydb.mdf;User Instance=true;

資料庫映象
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

Asynchronous processing
Server=myServerAddress; Database=myDataBase; Integrated Security=True; Asynchronous Processing=True;

MySQL

MyODBC

MyODBC 2.50 本地資料庫
Driver={mySQL};Server=localhost;Option=16834;Database=myDataBase;

MyODBC 2.50 遠端資料庫
Driver={mySQL}; Server=myServerAddress;Port=3306; Option=131072;Stmt=; Database=myDataBase; Uid=myUsername; Pwd=myPassword;

MyODBC 3.51 本地資料庫
Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;

MyODBC 3.51 遠端資料庫
Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Port=3306; Database=myDataBase; User=myUsername; Password=myPassword;Option=3;

OLE DB, OleDbConnection (.NET)

標準
Provider=MySQLProv; Data Source=mydb; User Id=myUsername; Password=myPassword;

Connector/Net 1.0 (.NET)
標準
Server=myServerAddress; Database=myDataBase; Uid=myUsername;Pwd=myPassword;
預設埠號是3306

指定埠號
Server=myServerAddress; Port=1234;Database=myDataBase; Uid=myUsername; Pwd=myPassword;

命名管道
Server=myServerAddress; Port=-1;Database=myDataBase; Uid=myUsername;Pwd=myPassword;
如果埠是-1,意思是告訴驅動程式使用命名管道網路協議來連線資料庫。

MySqlConnection (.NET)

eInfoDesigns.dbProvider
Data Source=myServerAddress; Database=myDataBase;User ID=myUsername; Password=myPassword; Command Logging=false;

SevenObjects MySqlClient (.NET)
標準
Host=myServerAddress; UserName=myUsername; Password=myPassword; Database=myDataBase;

Core Labs MySQLDirect (.NET)
標準
User ID=root;Password=myPassword;Host=localhost;Port=3306;Database=myDataBase; Direct=true;Protocol=TCP;Compress=false;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

MySQLDriverCS (.NET)
標準
Location=myServerAddress; Data Source=myDataBase; UserID=myUsername; Password=myPassword; Port=3306;Extended Properties=”“”“;

Oracle

ODBC

新版本
Driver={Microsoft ODBC for Oracle}; Server=myServerAddress; Uid=myUsername;Pwd=myPassword;

舊版本
Driver={Microsoft ODBC Driver for Oracle}; ConnectString=OracleServer.world; Uid=myUsername; Pwd=myPassword;

OLE DB, OleDbConnection (.NET)

標準連線
此連線字串適用了微軟的驅動。
Provider=msdaora;Data Source=MyOracleDB; User Id=myUsername; Password=myPassword;

受信連線
Provider=msdaora; Data Source=MyOracleDB; Persist Security Info=False; Integrated Security=Yes;

標準連線
由Oracle提供的驅動。
Provider=OraOLEDB. Oracle;Data Source=MyOracleDB; User Id=myUsername; Password=myPassword;

受信連線
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;

Oracle.DataAccess.Client.OracleConnection
標準
Data Source=TORCL;User Id=myUsername; Password=myPassword;

標準安全連線
Data Source=TORCL;Integrated Security=SSPI;

使用ODP.NET而不使用tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost) (PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID))); User Id=myUsername;Password=myPassword;

OracleConnection, Oracle Data Provider, ODP.NET.
System.Data.OracleClient.OracleConnection.
標準
用於8i RC3及以後的版本
Data Source=MyOracleDB;Integrated Security=yes;

指定使用者名稱和密碼
用於8i RC3及以後的版本
Data Source=MyOracleDB; User Id=myUsername; Password=myPassword; Integrated Security=no;

忽略tnsnames.ora
另一種不需要使用DSN的連線方式
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost) (PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); uid=myUsername;pwd=myPassword;

使用上面的連線字串可能會導致Visual Studio報告錯誤。
如果您在使用中出現了這些問題,請使用下面的這種連線方式。
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)) (CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); User Id=myUsername; Password=myPassword;

使用連線池
如果連線池服務程式找不到已經存在的連線池,它將根據連線字串建立一個新的池。
否則將迴圈使用池中已存在的連線。
Data Source=myOracleDB; User Id=myUsername; Password=myPassword;Min Pool Size=10;Connection Lifetime=120; Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;

Windows身份驗證
Data Source=myOracleDB;User Id=/;

特權連線
使用SYSDBA
Data Source=myOracleDB;User Id=SYS;Password=SYS; DBA Privilege=SYSDBA;

特權連線
使用SYSOPER
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;

密碼過期處理過程
當使用一個連線字串連線資料庫後,出現”密碼已過期”的錯誤時。
請執行OpenWithNewPassword命令來提供新密碼。
Data Source=myOracleDB;User Id=myUsername;Password=myPassword; oConn.OpenWithNewPassword(sTheNewPassword);

Proxy驗證
Data Source=myOracleDB; User Id=myUsername; Password=myPassword;Proxy User Id=pUserId; Proxy Password=pPassword;

Core Labs OraDirect (.NET)
Standard
User ID=myUsername; Password=myPassword; Host=ora;Pooling=true; Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

Data Shape
MS Data Shape
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA; Data Source=orac;User Id=myUsername; Password=myPassword;

AS/400 (iSeries)

IBM .Net Data Provider
您需要使用 IBM.Data.DB2.iSeries 名稱空間
DataSource=myServerAddress;UserID=myUsername; Password=myPassword;DataCompression=True;

OLE DB, OleDbConnection (.NET)
IBM Client Access OLE DB 介面卡
Provider=IBMDA400;Data Source=MY_SYSTEM_NAME;User Id=myUsername; Password=myPassword;
MY_SYSTEM_NAME是在OperationsNavigator中的系統連線名稱。

IBM Client Access OLE DB 介面卡
Provider=IBMDA400;Data Source=MY_SYSTEM_NAME;User Id=myUsername; Password=myPassword;Default Collection=MY_LIBRARY;
MY_SYSTEM_NAME是系統連線的名稱,MY_LIBRARY是iSeries Navigator中library的名稱。

ODBC
IBM Client Access ODBC 驅動
Driver={Client Access ODBC Driver (32-bit)};System=my_system_name; Uid=myUsername; Pwd=myPassword;

IBM iSeries Access ODBC 驅動
這個驅動需要比IBM Client Access ODBC的驅動更新。
Driver={iSeries Access ODBC Driver};System=my_system_name; Uid=myUsername; Pwd=myPassword;

Caché

ODBC
標準
DRIVER={InterSystems ODBC};SERVER=myServerAddress; DATABASE=myDataBase; UID=myUsername;PWD=myPassword;

特定埠
DRIVER={InterSystems ODBC};SERVER=myServerAddress;PORT=12345; DATABASE=myDataBase; UID=myUsername;PWD=myPassword;

特定協議
DRIVER={InterSystems ODBC};SERVER=myServerAddress;PORT=12345; DATABASE=myDataBase; PROTOCOL=TCP;STATIC CURSORS=1;UID=myUsername;PWD=myPassword;

IBM DB2

OLE DB, OleDbConnection (.NET)
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=myUsername; Password=myPassword;

APPC
Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote; Initial Catalog=MyCtlg;Package Collection=MyPkgCol; Default Schema=Schema;User ID=myUsername;Password=myPassword;

IBM提供的OLE DB介面卡
TCP/IP
Provider=IBMDADB2;Database=myDataBase; Hostname=myServerAddress; Protocol=TCPIP;Port=50000; Uid=myUsername;Pwd=myPassword;

ODBC
標準
Driver={IBM DB2 ODBC DRIVER}; Database=myDataBase;Hostname=myServerAddress; Port=1234;Protocol=TCPIP;Uid=myUsername;Pwd=myPassword;

Firebird

ODBC – IBPhoenix Open Source
標準
Driver=Firebird/InterBase(r) driver;Uid=SYSDBA; Pwd=masterkey; DbName=D:/FIREBIRD/examples/TEST.FDB;

.NET – Firebird .Net Data Provider
標準
User=SYSDBA;Password=masterkey;Database=SampleDatabase.fdb; DataSource=localhost;Port=3050;Dialect=3; Charset=NONE;Role=; Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;

Informix

ODBC
Informix 3.30
Dsn=;Driver={INFORMIX 3.30 32 BIT};Host=hostname;Server=myServerAddress; Service=service-name; Protocol=olsoctcp; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Informix-CLI 2.5:
Driver={Informix-CLI 2.5 (32 Bit)};Server=myServerAddress; Database=myDataBase; Uid=myUsername;Pwd=myPassword;

OLE DB
IBM Informix OLE DB Provider
Provider=Ifxoledbc.2;Password=myPassword; User ID=myUsername; Data Source=dbName@serverName;Persist Security Info=true;

IBM Informix .NET Provider
IBM.Data.Informix.IfxConnection(名稱空間)
Database=myDataBase;Host=192.168.10.10; Server=db_engine_tcp; Service=1492; Protocol=onsoctcp;UID=myUsername;Password=myPassword;

##Ingres

ODBC
DSN-less
Provider=MSDASQL.1;DRIVER=Ingres;SRVR=xxxxx;DB=xxxxx;Persist SecurityInfo=False;Uid=myUsername;Pwd=myPassword; SELECTLOOPS=N; ExtendedProperties=”SERVER=xxxxx;DATABASE=xxxxx;SERVERTYPE=INGRES”;

Interbase

ODBC, Easysoft
本地計算機
Driver={Easysoft IB6 ODBC}; Server=localhost ;Database=localhost:C:/mydatabase.gdb; Uid=myUsername; Pwd=myPassword;

遠端計算機
Driver={Easysoft IB6 ODBC}; Server=myServerAddress; Database=ComputerName: C:/mydatabase.gdb; Uid=myUsername;Pwd=myPassword;

ODBC, Intersolv
本地計算機
Driver={INTERSOLV InterBase ODBC Driver (*.gdb)}; Server=localhost; Database=localhost: C:/mydatabase.gdb; Uid=myUsername; Pwd=myPassword;

遠端計算機
Driver={INTERSOLV InterBase ODBC Driver (*.gdb)}; Server=myServerAddress; Database=ComputerName: C:/mydatabase.gdb;Uid=myUsername; Pwd=myPassword;

OLE DB, SIBPROvider
標準
provider=sibprovider;location=localhost:;data source=c:/databases/gdbs/mygdb.gdb; user id=SYSDBA; Password=masterkey;

版本 2.x
Provider=SIBPROvider.2; Data Source=localhost:c:/databases/gdbs/mygdb.gdb; Persist Security Info=False;

指定字符集
provider=sibprovider;location=localhost:;data source=c:/databases/gdbs/mygdb.gdb; user id=SYSDBA; Password=masterkey; character set=ISO8859_1;

指定角色
provider=sibprovider;location=localhost:; data source=c:/databases/gdbs/mygdb.gdb;user id=SYSDBA; Password=masterkey; role=DIGITADORES;

Lightbase

標準連線
標準
User=myUsername;Password=myPassword;UDB=USERBASE;Server=myServerAddress;

Paradox

ODBC
5.X
Driver={Microsoft Paradox Driver (*.db )}; DriverID=538;Fil=Paradox 5.X; DefaultDir=c:/pathToDb/;Dbq=c:/pathToDb/;CollatingSequence=ASCII;

7.X
Provider=MSDASQL.1;Persist Security Info=False; Mode=Read;Extended Properties=DSN=Paradox; DBQ=C:/myDb;DefaultDir=C:/myDb;DriverId=538; FIL=Paradox 7.X; MaxBufferSize=2048;PageTimeout=600;;Initial Catalog=C:/myDb;
請注意:以上的方法僅能從資料庫獲取資料。

Intersolv 3.11 ODBC Driver
7.X
DSN=MyDSN;AUT=1;CT=7;DQ=0;FOC=0;IS=1; PW=myPassword;USF=1;ULQ=1;

並不是所有引數都是必填的。大多數引數都能夠在DSN中進行設定。
Parameters definition
AUT – ApplicationUsingThreads
CT – CreateType
DB – Database
DSN – DataSourceName
DQ – DeferQueryEvaluation
FOC – FileOpenCache
IS – IntlSort
ND – NetDir
PW – Passwords
USF – UltraSafeCommit
ULQ – UseLongQualifiers

OleDbConnection (.NET)
標準
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/myDb;Extended Properties=Paradox 5.x;
注意:您僅需要指定資料庫存放的地址而無需指定資料庫的名稱。

SQLBase

OLE DB
標準
Provider=SQLBaseOLEDB;Data source=myServerAddress; Location=myDataBase; User Id=myUsername; Password=myPassword;

SQLBase .NET Data Provider
標準SQLBase連線
DataSource=myServerAddress; UserId=myUsername; Password=myPassword;Poolsize=5;Connection Lifetime=60;
“Poolsize” 表示多少SQLBase連線被開啟,不論它們是否被立即使用。預設值是5。
“Connection Lifetime” 表示連線存在多長時間(單位:秒)。預設是60秒。

SQL Serve

ODBC
標準連線
Driver={SQL Server};Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;

受信的連線
Driver={SQL Server};Server=myServerAddress; Database=myDataBase;Trusted_Connection=Yes;

指定帳號和密碼
oConn.Properties(“Prompt”) = adPromptAlways Driver={SQL Server}; Server=myServerAddress;Database=myDataBase;

OLE DB, OleDbConnection (.NET)
標準連線
Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

受信的連線
Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
使用serverName/instanceName作為資料來源可以指定SQL Server例項。

連線到一個SQL Server的例項
指定伺服器例項的表示式和其他SQL Server的連線字串相同。
Provider=sqloledb; Data Source=myServerName/theInstanceName; Initial Catalog=myDataBase;Integrated Security=SSPI;

指定帳戶和密碼
oConn.Provider = “sqloledb” oConn.Properties(“Prompt”) = adPromptAlways Data Source=myServerAddress;Initial Catalog=myDataBase;

使用IP地址的連線
Provider=sqloledb;Data Source=190.190.200.100,1433; Network Library=DBMSSOCN;Initial Catalog=myDataBase; User ID=myUsername; Password=myPassword;

SqlConnection (.NET)
標準連線
Data Source=myServerAddress;Initial Catalog=myDataBase; User Id=myUsername;Password=myPassword;

Standard Security alternative syntax
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

受信任的連線
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

Trusted Connection alternative syntax
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

連線到SQL Server例項
指定伺服器例項的表示式和其他SQL Server的連線字串相同。
Server=myServerName/theInstanceName;Database=myDataBase; Trusted_Connection=True;

僅能用於CE裝置。
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain/myUsername;Password=myPassword;

帶有IP地址的連線
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;

指定包的大小
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword; Trusted_Connection=False;Packet Size=4096;
預設的包大小為8192位元組。

Data Shape
MS Data Shape
Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=myServerAddress; Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

絮叨絮叨

  基於最初學習資料庫時的經歷,個人覺得如果一項技術/一件事情經過很長時間的努力都沒有結果的話,不妨先放一放,過段時間再來研究/處理可能會有新的進展!雖然你是把它放在一邊了,可能你的大腦深處並沒有放下,而是在默默的關注的它,默默的在尋找解決的辦法。

  現在技術越來越開放了,很多技術都可以在網上找到,但你要學會尋找的方法;同樣一個問題,使用同樣的搜尋引擎,一百個人可能找到的結果都不一樣,使用的時間也不一樣;雖然現在搜尋引擎已經很智慧了,分詞也做得很好,但相對人腦來說,我覺得還相差甚遠;其實很多問題問題身邊的朋友或同事可能解決起來是最快最高效的,但程式設計師大多是內向的,要強的,只喜歡自己尋找答案;當通過搜尋引擎找不到滿意的答案時,我們可以去一些論壇發帖求助,去問答類網站求助;國內的網站解決不了,很多人喜歡去牆外尋找答案;這裡就涉及到一個關鍵問題“英語”!要想能快速的學習計算機知識,解決相關問題,一定要好好學習英語;這方面外國人比我們有先天的優勢,不學就會了一半。


PS:微笑應該是人類獨特的一種微妙表情,是人類的體態語言,是一種不確切的語言,是一種無聲的感召,一首無曲的小調,是一朵無香的尚未綻放的小花,是一片飄忽不定的似幻似真的淡淡白雲,更是一種撫慰心靈的藥劑。


相關文章