Newsgroup: it.comp.www.asp
Titolo: Leggere db su altro server

Salve,
avrei un problema.
Dovrei leggere il dati di un db che č posto su un altro server.
Se non ho capito male nel sito dove sta il db devo creare il file xlm
per poi leggerlo.
Se č cosě come faccio a creare il file xml?
Grazie

 ha scritto nel messaggio 
news:1160923047.4...@f16g2000cwb.googlegroups.com...

Non sei obligato ad usare XML ... puoi usare altri db come mysql sqlserver 
ecc ecc
Se vuoi utilizzare xml devi esportare in formato xml la tabella del tuo db 
... trovi molti tool che fanno l'esportazione da molti formati se poi usi 
prodotti microsoft l'esportazione č semplicissima.
MrOne. 

intanto grazie per la risposta
io avrei risolto in questo modo:
scrivo un file nel mio sito
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile( fileName, 2, True, 0)
file.Write MSG
(se leggo un file nel mio sito ho problemi)
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile( fileName, 1, False, 0)
string = file.ReadLine
ma se lo leggo da un altro sito con
StrURL = "
http://www.sito.com/public/prova.txt
"
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "get", StrURL, false
objXMLHTTP.Send
content = CStr(objXMLHTTP.ResponseText)
il problema è:
FORLÌ diventa FORL?
E°VITA diventa E?VITA
e così di seguito.
Non riesco ad intercettare l'errore perchè al posto di caratteri
"strani" inserisce sempre "?" 
Qualche idea?

Ciao,
puoi usare ADO per esportare il Recordset in un file XML e poi leggerlo da 
un altro URL. Cosě:
- Per salvare il recordset in un file XML devi usare un recodset 
disconnesso. Ecco un esempio che estrae gli autori dal database Northwind di 
esempio in SQL Server (puoi ovviamente usare questo metodo anche con 
Access):
Const adUseClient = 3
Const adOpenStatic = 3
Const adLockBatchOptimistic = 4
Const adPersistXML = 1
Dim cnSQLServer 'As ADODB.Connection
Dim rsData 'As ADODB.Recordset
Set cnSQLServer = CreateObject("ADODB.Connection")
Set rsData = CreateObject("ADODB.Recordset")
cnSQLServer.Open "File Name=pubs.udl"
rsData.CursorLocation = adUseClient
rsData.Open "SELECT au_id, au_fname, au_lname FROM Authors ORDER BY au_id", 
_
cnSQLServer, adOpenStatic, adLockBatchOptimistic
Set rsData.ActiveConnection = Nothing
cnSQLServer.Close
Set cnSQLServer = Nothing
rsData.Save "autori.xml", adPersistXML
rsData.Close
Set rsData = Nothing
NOTA: questo codice di esempio viene dal libro "XML" di Paolo Pialorsi - I 
Portatili - Mondadori (spendi anche poco! :-)), dove trovi molti esempi di 
Data Binding (anche se non molto approfonditi - Pialorsi č comunque una 
pietra miliare)
- Ora che hai il tuo bravo recordset nel file autori.xml sul server dove 
risiede il database, puoi leggerlo sempre con ADO da un altro server e farci 
quello che vuoi (spararlo a video, reinserirlo in un altro database, 
salvarlo in un nuovo file xml o di testo, etc.). Ad esempio, per salvarlo in 
un nuovo file xml ecco il codice:
Dim objXMLDoc 'As MSXML2.DOMDocument.4.0
Set objXMLDoc = CreateObject("MSXML2.DOMDocument.4.0")
objXMLDoc.async = False
objXMLDoc.validateOnParse = False
If objXMLDoc.load("
http://SitoRemotoOrigine/pubs/autori.xml
") Then
 objXMLDoc.save "ricevutoDaLontanoAutori.xml"
Else
 MsgBox "Errore: " & vbCrLf & objXMLDoc.parseError.reason
End If
Set objXMLDoc = Nothing
- Viene usato validateOnParse = False perché, essendo stato creato da ADO, 
non importa controllare che il file autori.xml in arrivo sia un file XML 
valido.
- Oppure, dato che sia gli oggetti ASP che quelli MSXML supportano IStream, 
puoi anche sparare il DOMDocument direttamente nell'oggetto Response di ASP, 
semplicemente cambiando la riga relativa al metodo Save vista qui sopra, 
cosě:
 objXMLDoc.save Response
- Se vuoi puoi anche ricaricare il file autori.xml in ADO e quindi farci 
tutto quello che vuoi e che normalmente fai con un recorset ADO 
(visualizzarlo, aggiornarlo, etc.). Ecco un esempio:
Const adUseClient = 3
Const adOpenStatic = 3
Const adLockBatchOptimistic = 4
Const adPersistXML = 1
Dim cnSQLServer 'As ADODB.Connection
Dim rsData 'As ADODB.Recordset
Set cnSQLServer = CreateObject("ADODB.Connection")
Set rsData = CreateObject("ADODB.Recordset")
rsData.Open "
http://SitoRemotoOrigine/pubs/autori.xml
"
    ' ciclo sul recordset ....
rsData.Close
Set rsData = Nothing
- Per finire puoi anche salvare in un file di testo con FileSystemObject, 
oppure in una Data Island DHTML lato client tramite il tag <xml> 
proprietario di IE, o inviarlo a un qualche componente ActiveX lato client, 
trasformarlo in qualcos'altro con XML-FO o XSLT (ad esempio generare un 
PDF), inviarlo ad un altro server Web con XMLHTTP, mandarlo a MS Office o ai 
suoi Web Components, usare WSH (se hai i permessi sul server) per scaricarlo 
sul sistema, stamparlo sulla stampante predefinita del server, inviarlo ad 
un Web Service oppure se usi SQL Server puoi usare SQLXML, 
ecc...ecc...ecc...ecc...ecc...
Una cosa č certa a mio avviso: usare XML per qualsiasi cosa abbia a che fare 
con il Data Binding č sempre la strada migliore.
Spero di esserti stato utile.
Ciao
Giovanni 

sie stato utile e preciso.
faccio delle prove: se ho problemi provo a chiedere ancora