mercoledì 5 novembre 2008

Connettere un file mdf con c#

Più volte capita che si debba realizzare un applicazione che possa lavorare sia in modalità "alone" che in "in the net".

Questo potrebbe voler implicare che la nostra applicazione sappia scrivere e leggere su una o più fonte dati.
C'e' da dire che non sempre possiamo portarci dietro tutto un slq server e dobbiamo poter scegliere di puntare indipendentemente o al nostro Sql Express Edition, o ad un Sql Server nella nostra lan.

Da qui il dilemma. Come mi comporto nel disaccoppiamento fra Manager e Data Provider ?? mi scrivo due data provider uno per Sql Server e un per Sql Express ??
Ma no alla fine fanno le stesse cose girano le stesse query potrebbe non aver senso. (il problema al più nasce nella sincronizzazione).

Ed è quindi più che lecito pensare che c'e' un arcano per venirne a capo.

Un data provider semplice "dovrebbe" aver lo scopo di indicare ad un potenziale data Reader Dove effettuerà la lettura,
mi è lecito dertminare quindi a questo livello diversi tipi di stringhe di connessione..


E qui sorge il problema come mi connetto ??

la cosa è molto semplice basta creare una stringa di connessione secondo quanto segue ..

Data Source=.\SQLEXPRESS;
AttachDbFilename=[Nome file];
Integrated Security=True;
Connect Timeout=30;
User Instance=True

E fatte le dovute prove incontrerte un errore documentato da ms, ma momentaneamente
spostato nella TODO LIST!

http://support.microsoft.com/?scid=kb%3Ben-us%3B908038&x=13&y=16

La soluzione più rapida è verificare l'esistenza di questo percorso e sistemare il vostro mdf ( più ldf qui)

C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Data

Inoltre è necessario che in nome file sia riportato tutto il percorso.. nella sua interezza più il nome del file.

Aspetteremo, magari se ne accorgono e correggono.. ma per la distribuzione ??
come si potrà fare ??