我正在開發在網絡上運行的應用程序。它需要經常聯繫到數據庫(訪問數據庫),它存儲在服務器中。幾乎每隔2-3秒就有大約30臺客戶端計算機聯繫數據庫。我需要知道應用程序中是否存在潛在的明顯問題?存儲在服務器上的數據庫的潛在問題
如果數據庫正在被一個客戶端更新,同時其他客戶端與它聯繫,會不會有問題?
非常感謝。懷着最誠摯的問候, Furqan
我正在開發在網絡上運行的應用程序。它需要經常聯繫到數據庫(訪問數據庫),它存儲在服務器中。幾乎每隔2-3秒就有大約30臺客戶端計算機聯繫數據庫。我需要知道應用程序中是否存在潛在的明顯問題?存儲在服務器上的數據庫的潛在問題
如果數據庫正在被一個客戶端更新,同時其他客戶端與它聯繫,會不會有問題?
非常感謝。懷着最誠摯的問候, Furqan
MS Access在超過大約5-10個併發連接時表現不佳。使用SQL Server Express Edition代替。
SQL Server Express Edition Overview
看一看的SQL Server Migration Assistent從MS Access到SQL Server 2008
它在你的應用程序中的編碼取決於課程。我有類似的應用程序運行在工作中,並沒有遇到問題。唯一需要注意的是需要讀取數據庫的函數。所以一些提示可能會很方便。
首先,嘗試限制數據庫連接打開的時間(正如Mitch指出的那樣)。
其次,儘量避免讀取和保存查詢之間的大塊可執行代碼。不要讀取數據庫中的最大ID,然後運行需要超過0.5秒的代碼才能執行,然後保存需要數據庫中最大ID的記錄。如果其他用戶同時插入了新項目,這可能會出錯。
要連接到SQL Express使用的塊這樣的代替:
Dim conn As SqlClient.SqlConnection = New Data.SqlClient.SqlConnection("Server=" & servername & ";Database=" & databasename & ";User ID=" & userid & ";Password=" & password & ";Trusted_Connection=False;")
Dim sqlstatement As String = "INSERT INTO " & table & " (ATime,AStringWithLimitedLength,AnInteger,AString)"
sqlstatement &= " VALUES (@dates,@chars,@ints,@string)"
Dim comm As New SqlClient.SqlCommand(sqlstatement, conn)
With comm.Parameters
.Add("@dates", SqlDbType.DateTime).Value = Me.Timestamp
.Add("@chars", SqlDbType.VarChar).Value = Me.Type
.Add("@ints", SqlDbType.Int).Value = Me.UserID
.Add("@string", SqlDbType.Text).Value = Me.SQL
End With
conn.Open()
comm.ExecuteNonQuery()
conn.Close()
總而言之非常相似,MSACCESS,只是你不使用OLEDB但SqlClient中。您可能需要下載(免費)'SQL Server Management Studio Express'以所見即所得的方式修改您的數據庫。
感謝您的諮詢。我真的不知道如何在SQL Server Express中創建和訪問數據庫。你能給我一個提示嗎? – 2010-11-10 10:18:32
試試這個:http://www.online-tech-tips.com/ms-office-tips/ms-access-to-sql-database/ – 2010-11-10 10:20:43
連接到SQL Server Express只是使用正確的連接字符串。 – 2010-11-10 10:21:05