81 messaggi dal 03 giugno 2001
Ciao a tutti,
era da una vita che no scrivevo su questo forum, visto che per un pò di tempo ho lavorato oslo con php e oracle...

vengo al dunque.. non sono molto pratico di sql server, e dovendo fare un'aplicazione in asp e sql2005. mi sono installato il tutto in locale..
tutto ok tutto a posto..
in locale.. per coneetrmi da codice. utilizzo questa stringa di connessione:

strConn ="Trusted_Connection=yes;Provider=SQLOLEDB;Data Source=CASA\SQLEXPRESS;Initial Catalog=DBabstract;User ID=sa;Password=pippo;"


e ripeto tutto va bene..
ora però è arivato il momento di passare questo databse sul server e sfogliando le directory del server ho visto che c'è in una cartella dei file mdf. e .ldf
(e il resto di un'aplicazione che cera prima...)
quindi capito l'arcano vado a documentarmi un po è credo di aver capito che anch'io devo uplodare questi due file del mio db..
fin qua dico bene?
ora vi chiedevo gentilmente.. quella cartella che vado a creare deve avere dei permessi o privilegi... speciali... e poi che stringa a questo punto devo utilizzare... visto che non punto più al server ma al file mdf?

grazie una buona notte o buon giorno :)
giuseppe

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
girub ha scritto:
strConn ="Trusted_Connection=yes;Provider=SQLOLEDB;Data Source=CASA\SQLEXPRESS;Initial Catalog=DBabstract;User ID=sa;Password=pippo;"


In questa stringa di connessione indichi di voler utilizzare una connessione truster (ovvero girare a SQL Server le credenziali con cui hai fatto logon sulla tua macchina) ma poi specifichi anche utente e password di un account di SQL Server. Delle 2 una è superflua e non saprei dirti, però, in questo caso qual'è delle 2 che SQL Server ignora.


e ripeto tutto va bene..
ora però è arivato il momento di passare questo databse sul server e sfogliando le directory del server ho visto che c'è in una cartella dei file mdf. e .ldf
(e il resto di un'aplicazione che cera prima...)
quindi capito l'arcano vado a documentarmi un po è credo di aver capito che anch'io devo uplodare questi due file del mio db..
fin qua dico bene?


Dici bene fintanto che parli del fatto che un database di SQL Server è basato su ALMENO 2 file (ovvero almeno un file dati e almeno un file di log). Attenzione che per poter "uploadare" (termine molto improprio) questi 2 file devi preventivamente scollegarli dall'istanza a cui sono collegati utilizzando l'istruzione sp_detachdb; solo in questo momento potrai copiarli in un'altra cartella su un altro server (o in alternativa puoi farlo dopo aver fermato il servizio SQL Server) e da li impartire il comando sp_attachdb per collegare i file dati ad una nuova istanza di SQL Server.


ora vi chiedevo gentilmente.. quella cartella che vado a creare deve avere dei permessi o privilegi... speciali... e poi che stringa a questo punto devo utilizzare... visto che non punto più al server ma al file mdf?


Ecco, qui inizi a sbagliare...
Al di la del fatto che in SQL Server Express (e ribadisco SOLO nella versione Express) è stata introdotta la possibilità di utilizzare le User Instance referenziando direttamente l'mdf e non il database come entità logica, questa è, a mio avviso, la più grande cazzata che sia mai stata presente in SQL Server. Utilizzare questa funzionalità significa utilizzare SQL Server in modalità mono-utente e limiti la tua applicazione a non poter utilizzare versioni diverse di SQL Server perchè, ripeto, questa "feature" è presente solo nella versione Express.
Sempre preferibile, quindi, utilizzare i file dati + log copiati con i passaggi di cui sopra e collegati ad un'altra istanza di SQL Server e continuare a lavorare con un VERO SQL Server (anche la versione Express la considero un vero SQL Server) e non con un accrocco che, in quanto monoutente, è addirittura peggiorativo di Access (che ho sempre considerato un ottimo prodotto).


grazie una buona notte o buon giorno :)
giuseppe


Buongiorno... ;-)

Bye
81 messaggi dal 03 giugno 2001
Ciao Luca,
scusa se non ho risposto subito.. daltronde era mio interesse.. ma sono sttao fuori.. e sembra strano veramente ma 3 ggiorni senza internet:.. :)

allora ho sentito i tuoi suggerimenti...
e ho quindi attaccato il file mdf su unl'altro server.. che hoh è la stessa amchina dov'è il codice...
questo non ovrebbe portare problemi.. vero...?
ma provando un po tutte le strnghe trovatesul sito stringconnection...
non riesco a fare ancora il collegamento...

per assicurarmi... che sql server sia visibile all'esterno quali osno le prove che dovrei fare..
del tipo... pingando sulla porta 1443..che è stata abilitata sul firewall(se no erro.. o cmq quella sua..) da fuori... questa macchina mi dovrebbe rispondere vero..?

insomma sono un pò demoralizzato... non so più che prove fare.. ho il codice che funge ma non riesco ad attarlo al db
magari.... mi consigli un po di porva da fare...o suggeriemnti per veder se sta macchina e configurata bene.-.. o no?

graziegiuseppe

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
ho quindi attaccato il file mdf su unl'altro server.. che hoh è la stessa amchina dov'è il codice...


Spero che non ti sia scordato del file ldf altrimenti rischi di avere un database inconsistente. L'importanza del file di log è, ai fini dell'integrità dei dati, superiore a quella dei dati stessi...

per assicurarmi... che sql server sia visibile all'esterno quali osno le prove che dovrei fare..


Beh, la cosa più importante è riuscire a fare la connessione... ;-)
Attenzione al fatto che, per impostazione predefinita, le versioni Express di SQL Server 2005 vengono installate per consentire SOLO connessioni locali. Per abilitare ANCHE le connessioni remote devi accedere al Surface Area Configuration (SAC) e abilitare il protocollo TCPIP.
Per impostazione predefinita l'istanza di default è in ascolto sulla porta 1433; le istanze con nome sono invece in ascolto su una porta dinamica. Un servizio (SQLBrowser) in ascolto sulla porta UDP 1434 resta in ascolto delle connessioni dirette ad una qualsiasi istanza con nome e le redireziona sulla giusta porta. Questo servizio se non è in esecuzione ti restituirà un errore se tenti di connetterti ad una qualunque istanza con nome.
Infine devi accertarti che nell'istanza il login che utilizzi sia valido e ti ricordo che se operi al di fuori di un ambiente di dominio dovrai utilizzare un account di SQL Server e, preventivamente, aver abilitato la MIXED mode authentication...

Bye
81 messaggi dal 03 giugno 2001
Grazie mille Luca, della tua delucidazione....
Allora ora.... sto continuando a fare delle prove... stavolta da casa mia...
Cioè (casa mia... server del db remoto...) e non (server remoto con codice.. e server remoto db)

Sto facendo questo tipo diprova.. perchè da casa mia dove ho codice e db sulla stessa macchina tutto è ok.

strConn ="Trusted_Connection=yes;Provider=SQLOLEDB;Data Source=CASA\SQLEXPRESS;Initial Catalog=DBmio;User ID=sa;Password=pippo;"

allora ho provato con "SQL Server Management Studio" se riesco a raggiungere la macchina remota e vedere il db che mi servirebbe per la connessione con asp (quello che è stato appunto collegato....) da un'altra macchina mettendo
il risulato è ok.
riesco a connetermi e vedere il db, mettendo nella sctringa server name di SQL MAnager

xxx.xx.xx.xxx\SQLEXPRESS;


a questo punto riprovo a cambiare il codice della mia stringa di connessione locale...

strConn ="Trusted_Connection=yes;Provider=SQLOLEDB;Data Source=xxx.xx.xx.xxx\SQLEXPRESS;Initial Catalog=DBmio;User ID=sa;Password=nuovapwd;"

ma il risulatato e sempre questo:

# Tipo di errore:
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]Server SQL inesistente o accesso negato.

ci riusciro prima o poi...
:)

insomma perchè con SQL Server Management Studio si connette e con codice no?
daltronde questa porta è aperta... 1433.


Che faccio rinuncio.. e cambio.. db?

grazie ancora della tua gentilezza
Giuseppe
Modificato da girub il 21 maggio 2007 12.31 -
Modificato da girub il 21 maggio 2007 12.32 -

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"
81 messaggi dal 03 giugno 2001
Allora...
ho trovato... e credo di essere vicino alla soluzione....
continuando a provare le varie stringhe di connessione.. da casa mia.. a server del db


con questa stringa :

strConn ="Provider=SQLNCLI;Server=xxx.xx.xx.xxx\SQLEXPRESS;Database=DBabstract;Uid=pipo;Pwd=pipo;"


mi funge... !!
cioè io da casa mia cambiando questa stringa di connesisone vedo il db remoto...

pensavo quindi di aver risolto...

così sul server remoto dove è uplodato il codice.. ho cambiato la stringa di connessione...
pensando che tutto era ok!!
ma... ancora nulla..
e siccome ci sono sul server le pagine di errore personalizzati.. se vado nei log vedo che c'è quest'errore...


|800a0e7a|Impossibile_trovare_il_provider._È_possibile_che_non_sia_installato_correttamente. 80 -


può essere che su questa macchina questo server abbia delle restrizioni.. di connessione... magari hanno chiuso la porta interessata..??
non so spiegarmi altro.. che potrebbe essere questa volta.?

Saluti e ancora grazie
Giuseppe

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
girub ha scritto:
|800a0e7a|Impossibile_trovare_il_provider._È_possibile_che_non_sia_installato_correttamente. 80 -


Il Provider è quello che indichi con la proprietà "provider" (guarda caso :-) ) nella stringa di connessione. SQLNCLI sta per SQL Server Native Client, un provider uscito con SQL Server 2005 e che, con tutta probabilità, non è presente nella macchina da cui ti connetti via codice. Puoi scaricare i componenti da qui

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=50b97994-8453-4998-8226-fa42ec403d17

oppure utilizzare un diverso provider (OLEDB, ODBC, ecc)...

Bye
81 messaggi dal 03 giugno 2001
Ancora grazie Luca...
almeno ora sò.. come si suol dire di che morte devo morire....

appurato quindi che il server sql e visibile dall'esterno e che il codice và bene...
non mi rimane che chiedere al server che ospita il codice sorgente di installare i componenti che mi hai gentilmente postato o di farmi dire che tipo di provider hanno installato... loro... anche perchè ho provato a sosituire il provider sia con "SQLOLEDB" e sia "ODBC" ma mi da sempre errore...


Un saluto e una buona giornata

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.