2010-11-10 102 views
0

我正在開發在網絡上運行的應用程序。它需要經常聯繫到數據庫(訪問數據庫),它存儲在服務器中。幾乎每隔2-3秒就有大約30臺客戶端計算機聯繫數據庫。我需要知道應用程序中是否存在潛在的明顯問題?存儲在服務器上的數據庫的潛在問題

如果數據庫正在被一個客戶端更新,同時其他客戶端與它聯繫,會不會有問題?

非常感謝。懷着最誠摯的問候, Furqan

回答

3

MS Access在超過大約5-10個併發連接時表現不佳。使用SQL Server Express Edition代替。

SQL Server Express Edition Overview

看一看的SQL Server Migration Assistent從MS Access到SQL Server 2008

+0

感謝您的諮詢。我真的不知道如何在SQL Server Express中創建和訪問數據庫。你能給我一個提示嗎? – 2010-11-10 10:18:32

+0

試試這個:http://www.online-tech-tips.com/ms-office-tips/ms-access-to-sql-database/ – 2010-11-10 10:20:43

+0

連接到SQL Server Express只是使用正確的連接字符串。 – 2010-11-10 10:21:05

0

它在你的應用程序中的編碼取決於課程。我有類似的應用程序運行在工作中,並沒有遇到問題。唯一需要注意的是需要讀取數據庫的函數。所以一些提示可能會很方便。

首先,嘗試限制數據庫連接打開的時間(正如Mitch指出的那樣)。

其次,儘量避免讀取和保存查詢之間的大塊可執行代碼。不要讀取數據庫中的最大ID,然後運行需要超過0.5秒的代碼才能執行,然後保存需要數據庫中最大ID的記錄。如果其他用戶同時插入了新項目,這可能會出錯。

0

要連接到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'以所見即所得的方式修改您的數據庫。

相關問題