in che senso scusa.
io ho un pc dove risiede il db.mdf
dalle altre macchine interrogo il file.
è sbagliato?
in che senso scusa.
io ho un pc dove risiede il db.mdf
dalle altre macchine interrogo il file.
è sbagliato?
Non so se sia sbagliato o meno, quello che ti chiedo è
sei sicuro che le altre macchine vedano tutte lo stesso file??
Visto che hai messo nella stringa di connessione c:\
c'è da capire quel path a quale c:\ fa riferimento.
Se come penso è il c:\ della macchina sulla quale è stato lanciato l'eseguibile
ogni pc punterà al proprio hdd.
Allora anzi che c:\ forse dovresti mettere un path di rete
del tipo \\pc1\...\db.mdf
così sei sicuro che il file è il solito per tutti i pc della rete
allora riprendo il discorso.
ieri ho effettuato delle prove reali
2 pc e un router.
ho provato a connettere il db dal 1 pc client al 2 pc server, risultato impossibile la connessione, quale protocollo bisogna usare?
io non ci stò capendo più nulla,
in SQL Server Configuration Manager configuro tcp/ip e porta
per la connessione uso la stringa:
Dim cn As New SqlClient.SqlConnection("Server=192.168.12\SQLExpr ess;AttachDbFilename=C:\db.mdf;Database=db; Trusted_Connection=Yes;")
dove sbaglio?
forse bisogna creare un nuovo alias?
o bisogna configurare SQL Native Client
ma sul pc1 client il file c:\db.mdf
esiste?
se non esiste prova a copiarcelo, in tal caso è evidente che il programma cerca il file
sul pc client.
Allora dovrai mettere un percorso di rete.
Ma quel che mi chiedo è, perchè non crei il db nell'istanza di SqlServer anzi che caricarlo da un file?
allora l'errore non stà nel file perchè penso mi ritornerebbe un errore di db o file non trovato.Originariamente inviato da Max Mercury
ma sul pc1 client il file c:\db.mdf
esiste?
se non esiste prova a copiarcelo, in tal caso è evidente che il programma cerca il file
sul pc client.
Allora dovrai mettere un percorso di rete.
Ma quel che mi chiedo è, perchè non crei il db nell'istanza di SqlServer anzi che caricarlo da un file?
che senso ha mettere il file nel client?
se deve girare in rete i client si collegano al server o no?
nel client
appunto, allora perche gli dai un percorso locale ??
Primo: pur essendo possibile, non capisco questo:Originariamente inviato da x69asterix
Dim cn As New SqlClient.SqlConnection("Server=192.168.12\SQLExpr ess;AttachDbFilename=C:\db.mdf;Database=db; Trusted_Connection=Yes;")
dove sbaglio?
perchè usi un indirizzo IP quando sarebbe più semplice usare il nome del server, dato che sei in una LAN?
Ovvero:
Secondo:codice:Dim sServerPath As String = "\\nome_tuo_server\"
Tu usi C:\db.mdf .
Perchè vuoi fare l'attach di un database che è locale al Client?
Il file db.mdf DEVE risiedere sul Server, e preferibilmente (ma non obbligatorio) dove gira il servizio di SQLExpress, e comunque sempre in un disco del Server.
Infine:
Prova a comporre la stringa di connessione come indicato sopra:
se il tuo server si chiama "Server01" farai
Il file MDF dovrà risidere in una cartella condivisa, ad esempio se il file è sul percorso:codice:Dim sServerPath As String = "\\Server01\"
\\Server01\MyData\MyApp\DatabaseSQL\db.mdb
puoi condividere la cartella "DatabaseSQL" attribuendogli il nome "DATIDB"
in questo modo il tuo database sarà raggiungibile usando questo percorso:
\\Server01\DATIDB\db.mdb
Poi potrai aprire la connessione così:
codice:Dim conn As String = sServerPath + "SQLExpress;AttachDbFilename=" + sServerPath + "DATIDB\db.mdf;Database=db; Trusted_Connection=Yes;" Dim cn As New SqlClient.SqlConnection(conn)![]()
ciao gibra,Originariamente inviato da gibra
Primo: pur essendo possibile, non capisco questo:
perchè usi un indirizzo IP quando sarebbe più semplice usare il nome del server, dato che sei in una LAN?
Ovvero:
Secondo:codice:Dim sServerPath As String = "\\nome_tuo_server\"
Tu usi C:\db.mdf .
Perchè vuoi fare l'attach di un database che è locale al Client?
Il file db.mdf DEVE risiedere sul Server, e preferibilmente (ma non obbligatorio) dove gira il servizio di SQLExpress, e comunque sempre in un disco del Server.
Infine:
Prova a comporre la stringa di connessione come indicato sopra:
se il tuo server si chiama "Server01" farai
Il file MDF dovrà risidere in una cartella condivisa, ad esempio se il file è sul percorso:codice:Dim sServerPath As String = "\\Server01\"
\\Server01\MyData\MyApp\DatabaseSQL\db.mdb
puoi condividere la cartella "DatabaseSQL" attribuendogli il nome "DATIDB"
in questo modo il tuo database sarà raggiungibile usando questo percorso:
\\Server01\DATIDB\db.mdb
Poi potrai aprire la connessione così:
codice:Dim conn As String = sServerPath + "SQLExpress;AttachDbFilename=" + sServerPath + "DATIDB\db.mdf;Database=db; Trusted_Connection=Yes;" Dim cn As New SqlClient.SqlConnection(conn)![]()
grazie per l'attenzione,
allora a me ritorna:
Parola chiave '\\mioserver\sqlexpress;attachdbfilename' non supportata.
il codice:
Dim sServerPath As String = "\\mioserver\"
Dim conn As String = sServerPath + "SQLExpress;AttachDbFilename=" + sServerPath + "DATABASE\db.mdf;Database=db; Trusted_Connection=Yes;"
Dim cn As New SqlClient.SqlConnection(conn)
ti sei perso l'inzio della stringa di connessione:
Dim sServerPath As String = "\\mioserver\"
Dim conn As String = "server=" + sServerPath + "SQLExpress;AttachDbFilename=" + sServerPath + "DATABASE\db.mdf;Database=db; Trusted_Connection=Yes;"
Dim cn As New SqlClient.SqlConnection(conn)