VB資料庫程式設計的幾點心得 (轉)
一、ADO.Connection的連線字串(ConnectionString)的生成之道
ADO是當前訪問的主流,但其ConnectionString往往有一大串,並且在訪問不同的資料庫(如Access和 SERVER),或訪問方式(透過ODBC和OLE DB)不一樣時,其具體引數的設定差異很大,這給連線字串的編寫增加了一定的難度。這裡給大家介紹兩種生成ConnectionString的方法,以便在沒有現成的資料可供參考時,寫出需要的連線字串。
方法一,使用ADODC的連線字串嚮導生成連線字串。
用VB新建一標準EXE工程,先引用ADODC部件(選選單[工程][部件...],在彈出的部件視窗中選 ADO Data Control),再將其加到Form1上,預設名為Adodc1;選中Adodc1,在其上單擊右鍵,單擊“ADODC屬性”,選“使用連線字串”,單擊“生成”按鈕,接下來根據該向導一步一步輸入各相關的連線資訊,“確定”後,在“使用連線字串”下面的文字框中就是我們需要的內容。?
方法二,Ado連線視窗,獲得連線字串。
用VB新建一標準EXE工程,引用Microsoft OLE DB Service Component 1.0 Type Libary和Microsoft Data s 2.x Library(具體操作與ADODC的引用類似,只是透過選單[工程][引用...]選),加一個TextBox到Form1,雙擊Form1,進入Code編輯區,清除VB自動生成的所有程式碼,再輸入下述程式碼:
Option Explicit
Private Sub Form_Load()
Dim dlTemp As MSDASC.DataLinks
Dim cnTemp As ADODB.connection
Set dlTemp = New MSDASC.DataLinks
Set cnTemp = New ADODB.connection
dlTemp.PromptEdit cnTemp
Text1.Text = cnTemp.ConnectionString
Set dlTemp = Nothing
Set cnTemp = Nothing
End Sub
執行時會彈出一個與ADODC相似的生成連線字串的嚮導,輸入各相關資料,“確定”後在Form1的Text1中就得到我們需要的連線字串。
二、漢字亂碼問題
筆者曾經在使用ADO向SQL Server 6.5中追加或修改資料後,發現查詢出來的漢字都是亂碼,最初以為是客戶端的環境有問題,後來開啟端的資料庫,發現其中的漢字也都是亂碼,費了九牛二虎之力才找到原因:在追加和修改的過程中,ADO將字元進行了自動翻譯(AutoTranslate),翻譯後就成了亂碼(Microsoft給我們開了一個“小小”的玩笑),解決的辦法就是不讓它亂翻譯,具體操作如下:
如果ADO透過OLE DB直接連線到資料庫,則在Connection的ConnectionString中加入字串:AutoTranslate=False;
如果ADO透過ODBC連線到資料庫,則在ODBC時,將“字元資料轉換”一項的勾去掉。
三、在SQL中處理含單引號的字串
VB在寫SQL時,對字串資料都用單引號引起來,如:
* from MyTable Where ID='FirstID'
若其中的FirstID為First'ID,即中間多出一個單引號,則上述寫法將導致錯誤,解決的辦法是將字串中的每一個單引號用兩雙引號替換,下面的StrToSQL完成該功能,並用單引號將處理後的字串引起來:
Private Function StrToSQL(ByVal strValue As String) As String
StrToSQL = "'" + Replace(strValue, "'", "''") + "'"
End Function
在寫SQL時如有字串資料,不管其中有沒有單引號,都可以這樣使用:
strValue="First'Id"
strSQL="Select * from MyTable Where ID="+StrToSQL(strValue)
四、只返回查詢結果的前N個記錄
這是個老生常談的問題,稍有這方面的人都會想到在SQL中用"Select Top"語句來完成此功能,如訪問Access資料庫時為:
Select top 50 * From MyTable
7.0和SQL Server 2000中都可以這樣,但在SQL Server 6.5中不行,它不支援"Select Top",筆者採用了一個折衷的辦法,使用SQL Server 6.5的"Set Rowcount"來限制記錄數,例如:
MyConnection.Execute "Set Rowcount 50"
......'執行查詢
MyConnection.Execute "Set rowcount 0"
最後一行表示取消記錄資料限制,這句千萬不能少,因為記錄數的限制在MyConnection的生存期都有效,所以其它的查詢也會受此限制,最多隻返回50條記錄,筆者曾深受其害。
本文中涉及的內容的測試平臺為Visual Baisc 6.0 Enterprise+Service Pack 4。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993574/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VB程式設計的一些心得 (轉)程式設計
- 談談VB的資料庫程式設計方式 (轉)資料庫程式設計
- 非Access資料庫在VB的程式設計及應用 (轉)資料庫程式設計
- VB程式介面設計經驗點滴 (轉)
- Excel 的VB程式設計 (轉)Excel程式設計
- 有關資料庫概念設計幾點見解經驗談(轉)資料庫
- 轉摘_itpub_資料庫設計幾則資料庫
- VB程式設計經驗點滴程式設計
- VB的API程式設計精粹(1) (轉)API程式設計
- VB的API程式設計精粹(二) (轉)API程式設計
- WINDOWS CE 資料庫程式設計 (轉)Windows資料庫程式設計
- 資料庫設計---即資料庫架構設計的幾個步驟資料庫架構
- VC的另類資料庫程式設計(轉)資料庫程式設計
- VB程式設計師眼中的C# (轉)程式設計師C#
- Delphi資料庫程式設計教程(九) (轉)資料庫程式設計
- Java的資料庫程式設計(JDBC)技術[轉]Java資料庫程式設計JDBC
- Linux+Informix後臺資料庫系統《====》WinXX/ODBC/DELPHI/CBUILDER/VB程式設計設定 (轉)LinuxORM資料庫UI程式設計
- Java的中文程式設計與配置心得 (轉)Java程式設計
- 程式設計和除錯中的幾點總結 (轉)程式設計除錯
- VB程式設計師眼中的C# 2 (轉)程式設計師C#
- VB程式設計師眼中的C# 4 (轉)程式設計師C#
- VB程式設計師眼中的C# 6 (轉)程式設計師C#
- VB程式設計師眼中的C# 3 (轉)程式設計師C#
- VB程式設計師眼中的C# 5 (轉)程式設計師C#
- VB程式設計師眼中的C# 7 (轉)程式設計師C#
- VB程式設計師眼中的C# 8 (轉)程式設計師C#
- VB程式設計師眼中的C# 9 (轉)程式設計師C#
- 【資料庫設計】資料庫的設計資料庫
- ADO資料庫程式設計入門(轉)資料庫程式設計
- C#下資料庫程式設計(二) (轉)C#資料庫程式設計
- 程式設計幾點建議程式設計
- 程式設計心得程式設計
- 我設計資料庫常用的幾個原則資料庫
- VB程式設計師眼中的C# 10(end) (轉)程式設計師C#
- VB程式設計中的一些經驗 (轉)程式設計
- vb.net 存取資料庫中的圖片 (轉)資料庫
- 建立一個連線資料庫的VB元件 (轉)資料庫元件
- 用Python實現資料庫程式設計 (轉)Python資料庫程式設計