Newsgroup: it.comp.lang.visual-basic
Titolo: [?] RDS e DataBase remoti (potrebbe essere un tread interessante ;)

Ciao a tutti!
Devo assolutamente riuscire a connettermi ad un database access posto in un
sito web.
Inizialmente avevo realizzato una procedura che inviava via ftp
l'aggiornamento dei dati (un database access contenente i record da
aggiungere,modificare o cancellare) e poi richiamava una pagina ASP di
aggiornamento che travasava i dati tra questo database di aggiornamento e
quello principale. La soluzione si è rivelata instabile quando il database
ha cominciato da essere un po' complesso.
Da stamattina mi sono buttato a capofitto con alcuni miei colleghi per
trovare un metodo alternativo e ho girovagato per la rete. Fintanto che io
cercavo un mio collega ha provato così:
    Dim rs As New ADODB.Recordset
    Dim cnn As ADODB.Connection
    Dim sconnsql As String
    Set cnn = New ADODB.Connection
    sconnsql = "PROVIDER=MS Remote;Remote Provider=MSDataShape;Remote
Server=
http://www.xxxyyyzzz.it
;Data Source=xxxxxx;User
Id=uuuuuuuuuuu;Password=ppppppppp"
    cnn.Open sconnsql
    MsgBox cnn.State
    rs.CursorLocation = adUseClient
    rs.Open "select * from tabella", cnn, adOpenStatic, adLockReadOnly
    MsgBox rs.Fields("au_lname").Value
Il primo msgbox ritorna 1 (quindi secondo VB siamo connessi) ma poi quando
eseguiamo l'istruzione
    rs.Open "select * from authors", cnn, adOpenStatic, adLockReadOnly
Ci viene dato questo errore:
"Errore 8447 : Errore del server internet."
Disperati abbiamo scaricato l'SDK del MDAC 2.6 (ve lo consiglio! E' una
guida completa su ADO,ODBC, OLEDB,... - peccato siano 13MB da scaricare...
:( )
e ho scoperto la seguente tabella:
Internet Information Services Error Codes
The following table lists Microsoft® Internet Information Services (IIS)
error codes related to Remote Data Service usage. The positive decimal
translation of the low two bytes, the negative decimal translation of the
full error code, and the hexadecimal values are shown.
Internet Information Services errorsNumberDescription
IDS_IIS_AccessDenied 8208         -
2146820080
                                                      0x800A2010
Internet Server Error: Access Denied.
IDS_IIS_ObjectNotFound 8209    -
2146820079
                                                      0x800A2011
Internet Server Error: Object/module not found.
IDS_IIS_RequestForbidden 8210  -
2146820078
                                                     0x800A2012
Internet Server Error: Request Forbidden.
IDS_IIS_UnexpectedError 8447    -
2146819841
                                                      0x800A20FF
Internet Server Error.
Il nostro è il 4° errore della lista.
A questo punto ho deciso di rivoluzionare il tutto e di passare a RDS.
Sul SDK famoso che vi ho detto prima ho trovato molta documentazione. Mi
sono preso il seguente esempio
(che secondo l'autore funziona) e l'ho adattato alle mie esigenze.
    Dim dc As New RDS.DataControl
    Dim rst As ADODB.Recordset
    dc.Server = "
http://www.tuoserver.it
"
    dc.ExecuteOptions = 1
    dc.FetchOptions = 1
    dc.Connect = "DSN=nomedelDsn"
    dc.SQL = "SELECT * FROM tabella"
    dc.InternetTimeout = 20000  'Wait at least 20 seconds.
    Select Case dc.ReadyState
        Case 2: MsgBox "Executing Query"
        Case 3: MsgBox "Fetching records in background"
        Case 4: MsgBox "All records fetched"
    End Select
    dc.Refresh
    Set rst = dc.Recordset      'Use another Recordset as a convenience
    While Not rst.EOF
       Debug.Print rst!nome_campo
       rst.MoveNext
    Wend
    rst.Close
Arrivo ad impostare tutti i parametri senza problemi e quando interrogo la
proprietà ReadyState mi risponde "All records fetched".
Ma quando eseguo il dc.Refresh, UDITE UDITE... indovinate un po'... zak!
"Errore 8447 : Errore del server internet."
Aquesto punto mi vien da pensare che ci sia un errore nel DSN... o che il
server IIS dall'altra parte abbia dei problemi, o che sbagliamo ad impostare
qualche parametro, o che altro...
Dico anche che il DSN funziona alla perfezione. Riusciamo ad usarlo da tutte
le pagine ASP che compongono il sito!
Spero che qualcuno sia riuscito a leggersi tutta questa pappardella ;) e che
qualcuno (che so... il Pal della situazione ;;;)))) riesca a dare risposta!
Grazie!!!
Siete mitici
CiaoZ
SebaMix

 cercavo un mio collega ha provato cosě:
[...]

 wrote in message
9ak84b$5fsu1$1...@ID-66833.news.dfncis.de...


 Alfonso
CiaoZ
SebaMix

 data factory se la componentistica e' vecchia).
e MMC???


sito web.
Sul mio sito (e prossimamente anche sul Sito COmune) trovi un articolo che ti spiega come fare...
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

Ciao Moreno!!! Innanzitutto lasciati dire che hai svolto un eccellente
lavoro!
Ma i problemi rimangono.
Abbiamo provato i tuoi esempi ma sembra che il server abbia problemi con
l'oggetto stream (per la pagina XML di lettura di una tabella)...
Qui sulla LAN abbiamo fatto un'altra prova... Abbiamo un PC WinME
configurato come server HTTP (non ridete! ;) L'update naturalmente non va
(se non erro serve IIS ed NT o 2000) ma almeno il programmino (in un altro
PC ovviamente) riesce a leggere la tabella... Sigh... la soluzione sembrava
vicina... :(((
Qualche dritta (vanno bene anche storte ;;;)))) - umorismo da programmatori
;) )???
CiaoZ
SebaMix

 ha scritto nel messaggio
news:c7hrct4frtnubdegs...@4ax.com...


vicina... :(((
Esattamente che mesaggio di errore ti da?
Io l'ho testato su:
Client: W98, W2000
Server: W2000, WNT4 (Murialdo)


Ciao.
Innanzitutto grazie 1000 per i complimenti, sia a te che a Sebastiano...
Se volete, provate a sostituire il valore della costante RemotePath con:
Private Const RemotePath = "
http://www.murialdo.it/it_lang_vb/dbremoto/
"
L'ho appena testato e funziona (temevo in un errore nell'"abbellimento" del codice prima della
pubblicazione...).
Molto probabilmente non funziona poiché non avete attribuito i diritti di scrittura alla directory:
non sono mai attivi di default!
Fatemi sapere.


Quando faccio sulla pagina ASP il create object dell'ado.stream non va. Mi
dice che non puo' trovare l'oggetto... che dipenda dalla versione di ADO che
hanno sul server??? Lunedě ti so dire!
CiaoZ
SebaMix

Funziona!!! Puoi dirmi esattamente la configurazione di murialdo??? Che
emozione lasciare la mia firma!!! ;) La devo cambiare??? ;;;))))
Grazie!
CiaoZ
SebaMix



Dai un'occhiata alla risposta che ho dato a Torx...


Preventivamente risposto alla risposta! ;)
CiaoZ
SebaMix

emozione lasciare la mia firma!!! ;) La devo cambiare??? ;;;))))
;-P
Ti ripeto, l'unica cosa che ho modificato è l'aver impostato le permission di lettura e scrittura
alla directory su cui risiede il db...
Per il resto non so dirti la configurazione del server...
