Newsgroup: it.comp.appl.access
Titolo: Access XP ADP + SQL Express + runtime error -2147467250

[messaggio inviato anche su microsoft.public.it.office.access]
Da un mio cliente stavo cercando di migrare una procedura Access XP ad un 
ADP sempre con Access XP, basato su SQL Express 2005.
Descrivo un minimo la situazione del cliente nella quale mi sono trovato 
ad operare:
LAN centralizzata con armadio a rack.
Server:
computer con Windows XP Pro SP2 (su FAT32) con installati MSDE 2000 SP4 (istanza 
predefinita) e SQL Express 2005 (nomeserver\sqlexpress).
Sottolineo che i due DBMS non sono mai utilizzati contemporaneamente.
Tutti i casi sotto riportati sono identici sia nel caso in cui vengano provati 
con SQL Express 2005 sia che vengano provati con MSDE 2000 SP4.
10 client:
computer con Windows XP Pro SP2 o Windows 2000 Professional.
Tutti i casi sotto riportati sono identici sia nel caso in cui vengano provati 
su un client con Windows 2000 Professional, sia che vengano provati su un 
client con Windows XP Pro SP2.
Su tutti i client è installata la versione completa di Access 2000.
Su tutti i client è installato anche il runtime di Access XP per la presenza 
della procedura MDB che sto cercando di migrare.
Su tutti i client è installato MDAC 2.8.
Su tutti i client è installato anche il .NET Framework 2.0 (ma non dovrebbe 
essere rilevante).
mio notebook:
computer con Windows XP Pro SP2 con Access 2.0/97/XP/2003 (non posso togliere 
alcuna versione per problemi di manutenzione di diverse procedure).
Sul mio notebook sono installati MSDE 2000 SP4 (istanza predefinita) e SQL 
Express (nomenotebook\sqlexpress), quindi ho la stessa situazione presente 
sul Server.
Attualmente la procedura MDB presente sui 10 client si collega tranquillamente 
ad un file dati MDB presente sul Server. L'unico problema che compare di 
tanto in tanto è la corruzione del DB dati, probabilmente causato da qualche 
problema di connettività ethernet.
Il database ritorna ad essere utilizzabile dopo che viene "trattato" con 
il JetComp (ma di questo magari parliamo in un altro thread).
Proprio per evitare tali problemi ho pensato di passare ad un vero DBMS client/server 
e per questo mi serve un ADP (non voglio certo lavorare con ODBC e query 
pass-through, ci diventei matto).
Nella connection string del mio ADP utilizzo il provider OLE DB per SQL 2000, 
visto che il SQL Native Client pare non essere utilizzabile, quindi ho la 
stessa stringa utilizzata anche per altri progetti con MSDE 2000.
L'autenticazione è quella di SQL Server, più comoda perché non siamo in un 
dominio.
Caso 1
Lancio l'ADP dal mio notebook e si collega senza problemi al server SQL, 
sia come sa che come altro utente.
Caso 2
Lancio l'ADP da uno del 10 client, ma, indipendentemente dall'utente SQL 
utilizzato, ottengo il seguente errore:
Errore n°: -
2147467250
Descrizione: Server SQL specificato non trovato (Timeout scaduto)
Caso 3
Lancio l'ADP da uno dei 10 client, collegandomi però al server SQL presente 
suo mio notebook, ma, indipendentemente dall'utente SQL utilizzato, ottengo 
lo stesso errore del Caso 2.
Caso 4
Da uno dei 10 client provo a creare con Access 2000 un nuovo ADP collegandolo 
ad un database esistente, ma, andando a settare le proprietà di Data Link, 
pur vedendo elencate tutte le istanze SQL (sia del Server che del mio notebook), 
non riesco a collegarmi a nessuna, ottenendo lo stesso errore del Caso 2 
quando provo ad aprire la combo contenente i database presenti nell'istanza 
selezionata.
Caso 5
Dal mio notebook provo a creare con Access XP un nuovo ADP collegandolo ad 
un database esistente e non ottengo alcun errore indipendentemene dall'istanza 
di SQL scelta.
A tutta questa casistica aggiungo quanto segue:
1) il Server è raggiungibile a livello di file system sia da uno qualsiasi 
dei 10 client sia dal mio notebook, e lo conferma la procedura MDB esistente 
e funzionante.
2) il mio notebook è raggiungibile a livello di file system da uno qualsiasi 
dei 10 client, e lo confermano le mie prove di lettura/scrittura di cartelle 
e file.
3) ho contollato le proprietà di rete di SQL Express ma non ho trovato alcuna 
anomalia.
4) sempre in SQL Express ho provato ad aumentare il timeout per le connessioni 
remote da 20 a 60 secondi, ma niente è cambiato (me lo aspettavo).
Qualcuno è in grado di aiutarmi?
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it

 pass-through, ci diventei matto).
E per quale ragione non vorresti diventar matto con ODBC?
Non sei assolutamente costretto a usare query pass through: il driver ODBC
delega praticamente tutto al Server (a meno di Dlookups o altre ingenuità
nel codice SQL).
Ciao, Simone


Quando ho scritto il post originale ho inserito quel commento tra parentesi, 
e dopo che avevo inviato il messaggio mi sono pentito perché immaginavo che 
avrebbe distolto l'attenzione dal problema principale per cui ho scritto.
Diciamo che ho già lavorato qualche volta con gli ADP, quindi mi sento di 
più "a casa".
Tornando al runtime error che mi viene ritornato, hai qualche idea?


 Tornando al runtime error che mi viene ritornato, hai qualche idea?
Al momento non ho alcuna intenzione di forzare alcuni clienti
ad upgradarsi da SQL Server 2000 al 2005 ... quindi non conosco il prodotto
in oggetto.
D'altro canto sei stato estramemente preciso nell'esporre il quadro della
situazione: pare proprio un problema di connettività del ADP slegato da
altri problemi sistemistici di rete (e probabilmente non avrai problemi a
creare tabella collegate ODBC dai clients al nuovo Server).
Giorgio Rancati non dice nulla sull'altra area?
Ciao, Simone

> Giorgio Rancati non dice nulla sull'altra area?
Visto che lo hai nominato, ti posto l'ultimo suo messaggio intervento inviato 
su microsoft.public.it.office.access:
===================================================
Ciao Gabriele,
fai queste verifiche:
Macchina Server:
1) Assicurati che il servizio *Sql Server Browser* sia in funzione, puoi
verificarlo da *Sql Server Configuration Manager*
2) Assicurati che Sql Server abbia abilitato il protocollo Tcp/Ip, puoi
verificarlo aprendo il programma *Configurazione superficie di attacco di
Sql Server* e scegliendo l'opzione *Configurazione superficie di attacco per
servizi e connessioni* *Connessioni Remote*
3) Apri Sql Server Configuration Manager, e abilita il protocollo
Macchine Client:
Apri il programma cliconfg.exe ( Start-->esegui-->Cliconfg), attiva il
protocollo Tcp/Ip, nella sua proprietà *Porta predefinita* inserisci la
porta su cui è in ascolto Sql Server.
Per determinare la porta su cui è in ascolto Sql Server apri (nella macchina
server) il file ERRORLOG nella cartella *C:\Programmi\Microsoft SQL
Server\MSSQL\MSSQL\LOG* (vedi tu se il percorso è corretto), cerca la riga
----
Server is listening on [ 'any' <ipv4> 1064].
----
l'ultimo numero è quello della porta
===================================================
Non ho ancora avuto modo di fare queste verifiche. Spero di poterlo fare 
domani mattina.


"Gabriele Bertolucci" <in...@REMOVEpbsoft.it> ha scritto nel messaggio
news:875ea355b2518...@news.virgilio.it...

A me pare un problema di firewall (lato server, ma non escludo lato Client)
che nega
l'accesso alle porte usate dal database Engine verso i clients e viceversa.
E visto che con il tuo laptop ti colleghi penso piu' sia un problema lato
client.
Ho detto la mia.
Buona fortuna.
Bye :o)

 Buona fortuna.
Ti ringrazio per la tua opinione e per gli auguri :-)
