2010-11-10 2 views
0

Je développe une application qui fonctionne sur un réseau. Il a très souvent besoin de contacter la base de données (base de données d'accès), qui est stockée dans le serveur. Environ 30 ordinateurs clients contactent la base de données presque toutes les 2-3 secondes. J'ai besoin de savoir s'il pourrait y avoir un problème manifeste potentiel avec l'application?Problème potentiel avec la base de données stockée sur un serveur

Est-ce qu'il y aura un problème si la base de données est mise à jour par un client, en même temps qu'un autre client le contacte?

Merci beaucoup. Cordialement, Furqan

Répondre

3

MS Access ne fonctionne pas bien avec plus de 5 à 10 connexions simultanées.

Utilisez plutôt SQL Server Express Edition.

SQL Server Express Edition Overview

Jetez un oeil à la SQL Server Migration Assistent de MS Access vers SQL Server 2008

+0

Merci pour votre avis. Je ne sais vraiment pas comment créer et accéder à la base de données dans SQL Server Express. Pourriez-vous me donner un indice. –

+0

essayez ceci: http://www.online-tech-tips.com/ms-office-tips/ms-access-to-sql-database/ –

+0

Se connecter à SQL Server Express consiste simplement à utiliser la bonne chaîne de connexion . –

0

Cela dépend bien sûr du codage dans votre application. J'ai une application similaire au travail et je n'ai pas eu de problèmes. La seule chose que vous devez surveiller sont les fonctions qui nécessitent la lecture de la base de données. Donc, quelques conseils peuvent être utiles. Tout d'abord, essayez de limiter la durée d'ouverture de la connexion à la base de données (comme l'a souligné Mitch). Deuxièmement, essayez d'éviter les gros blocs de code exécutable entre la lecture et l'enregistrement des requêtes. Ne lisez pas par exemple un ID maximum de votre base de données, puis exécutez un code dont l'exécution nécessite plus de 0,5 seconde, puis enregistrez un enregistrement qui requiert l'ID maximum de la base de données. Cela pourrait potentiellement mal se passer si un autre utilisateur inséré un nouvel élément dans le temps moyen.

0

Pour vous connecter à des blocs d'utilisation SQL Express comme ceci:

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() 

Dans l'ensemble très semblable à MSAccess, sauf que vous n'utilisez pas OleDB mais SqlClient. Vous pouvez télécharger (gratuitement) 'SQL Server Management Studio Express' pour modifier votre base de données d'une manière WYSIWYG.

Questions connexes