Discussione:
Come impostare un IBM AS/400 come server collegato in SQL 2005 Express
(troppo vecchio per rispondere)
PBsoft
2006-12-17 09:19:08 UTC
Permalink
Ho dedicato tutta la giornata di ieri a cercare in internet, tra news, blog
e riviste, informazioni dettagliate su come impostare come server collegato
un IBM AS/400, ma la ricerca ha avuto poca fortuna.

Come ambiente di prova, prima di andare a toccare il server del cliente dove
è installato SQL 2005, ho utilizzato il mio portatile, dove pure si trova
un server SQL 2005 (la versione Express with Advanced Services SP1), ovviamente
collegato nella LAN del cliente, in modo da vedere il server IBM.

Per poter collegarmi tramite ODBC al server IBM, sapevo che è indispensabile
installare anche "IBM Client Access", quindi l'ho installato anche se il
mio cliente ha una versione decisamente vecchia.

Fatta questa installazione ho utilizzato "Operation Manager" per definire
una connessione al server IBM del cliente: questo passo è necessario perché
va a definire sulla macchina locale (il mio portatile, in questo caso) un
nome identificativo con il quale essa può fare riferimento (tramite ad esempio
un driver ODBC) al server IBM e l'utente tramite il quale stabilire il collegamento
ad esso. Infatti, tramite "Operation Manager" ho creato questo "identificativo"
e l'ho chiamato SERVERIBM.

A questo punto ho definito un DSN di sistema, sfruttando i driver "Client
Access ODBC" installati insieme a "IBM Client Access": in questo DSN ho definito
la libreria alla quale fare riferimento (NSEUCOM01). Ho chiamato il DSN "AS400".

Fatto questo, tramite SSMS Express ho provato a definire un server collegato,
ma l'elenco dei provider è vuoto (ho provato più volte a farne il refresh).
Sinceramente non me lo aspettavo, visto che sul mio pc dell'ufficio, quell'elenco
è altamente popolato (anche se nel mio ufficio ho SQL 2005 Developer con
SP1).

Questo (purtroppo) mi ha fatto ripiegare sul T-SQL e la stored procedure
sp_addlinkedserver.

Per imparare ad utilizzare questa stored procedure ho ovviamente consultato
i BOL, ma ho anche fatto numerose ricerche in internet, senza purtroppo riuscire
a trovare qualcuno che avesse avuto il mio stesso problema.

Alla fine, dopo varie consultazioni online, quello che ho ottenuto è stata
la seguente istruzione SQL:

EXEC sp_addlinkedserver
@server = N'IBMSERVER',
@srvproduct = N'Microsoft OLE DB Provider for ODBC Driver',
@provider = N'MSDASQL',
@datasrc = N'AS400',
@provstr = N'UID=QPGMR;PWD=QPGMR'

Ci tengo a precisare che la predetta istruzione viene terminata correttamente
ed il server viene aggiunto tra quelli collegati. Tuttavia, se di seguito
provo a fare una banale SELECT, ottengo il messaggio di errore 7302, che
mi informa (vado a memoria) di non essere riuscito a creare un'istanza OLE
DB del provider MSDASQL.

Anche per la SELECT in questione ho provato diverse forme:

SELECT * FROM OPENQUERY(IBMSERVER, 'SELECT * FROM NSEUCOM01.ANCLI00F')

SELECT * FROM IBMSERVER.S443482A.NSEUCOM01.ANCLI00F

Ho anche provato a collegare il server specificando, come @provider, "IBMDA400"
al posto di "MSDASQL". Questo avrebbe dovuto permettere a SQL 2005 di utilizzare
il driver OLE DB di IBM (anche se ho letto in internet che è veramente poco
stabile).
Anche in questo caso ho ottenuto il messaggio 7302.

A questo punto, l'unica cosa che ho potuto provare (e stavolta con successo)
è stato utilizzare tramite Access 2003 il DSN precedentemente creato. Ho
creato un nuovo MDB e gli ho collegato tabelle da un'origine dati ODBC, specificando
il DSN in questione ("AS400").
E' stato semplicissimo. In un attimo mi ha chiesto quali file visualizzare
(elencandomi tutti quelli disponibili nella libreria specificata all'interno
del DSN). Ho scelto quelli che volevo e sono stato in grado di visualizzarne
il contenuto senza alcun problema.
Questo mi fa capire che il DSN è corretto.

Ecco quindi che mi sono arenato.

In internet ho trovato, ad esempio:

- http://tinyurl.com/tk7nl
dal quale ho recuperato la sintassi per la sp_addlinkedserver e per la SELECT
successiva

- http://tinyurl.com/y5hh8k (SQL MAG)
segnalato anche da Luca Bianchi in un suo intervento, dovrebbe contenere
la procedura precisa per usare un AS/400 come server collegato. Sfortunatamente
bisogna essere abbonati alla rivista per accedere all'articolo e non è il
mio caso.

Spero proprio che qualcuno possa aiutarmi perché sono veramente fermo.
Considerate poi che non ho una VPN con il mio cliente, quindi per fare le
prove devo ogni volta andare da lui: mi piacerebbe andarci con la soluzione
definitiva.

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution
David Martin
2006-12-18 15:30:48 UTC
Permalink
Post by PBsoft
Ho dedicato tutta la giornata di ieri a cercare in internet, tra news,
blog e riviste, informazioni dettagliate su come impostare come server
collegato un IBM AS/400, ma la ricerca ha avuto poca fortuna.
Hai passato proprio una bella domenica eh!?!? :-)
Post by PBsoft
Come ambiente di prova, prima di andare a toccare il server del cliente
dove è installato SQL 2005, ho utilizzato il mio portatile, dove pure si
trova un server SQL 2005 (la versione Express with Advanced Services
SP1), ovviamente collegato nella LAN del cliente, in modo da vedere il
server IBM.
Ok, tieni conto che invece io ho fatto le mie prove con la versione SQL
Server 2005 Developer Edition SP1.
Post by PBsoft
Per poter collegarmi tramite ODBC al server IBM, sapevo che è
indispensabile installare anche "IBM Client Access", quindi l'ho
installato anche se il mio cliente ha una versione decisamente vecchia.
Sai quale sia il numero di versione, tanto per curiosità?
Io utilizzo la V5R1M0 con Service Pack SI11806.
Post by PBsoft
Fatta questa installazione ho utilizzato "Operation Manager" per
definire una connessione al server IBM del cliente: questo passo è
necessario perché va a definire sulla macchina locale (il mio portatile,
in questo caso) un nome identificativo con il quale essa può fare
riferimento (tramite ad esempio un driver ODBC) al server IBM e l'utente
tramite il quale stabilire il collegamento ad esso. Infatti, tramite
"Operation Manager" ho creato questo "identificativo" e l'ho chiamato
SERVERIBM.
Piccola precisazione: questo sinceramente non l'ho mai fatto, e siccome
tutto funziona direi che quanto hai descritto non è "necessario".
Anzi, io l'Operation Manager non lo installo neppure... di solito mi
bastano:
- componenti minimi richiesti da Client Access Express
- driver per trasferimento dati (oledb, odbc, ecc)
- emulazione terminale
Post by PBsoft
A questo punto ho definito un DSN di sistema, sfruttando i driver
"Client Access ODBC" installati insieme a "IBM Client Access": in questo
DSN ho definito la libreria alla quale fare riferimento (NSEUCOM01). Ho
chiamato il DSN "AS400".
Ok.
Io ho invece creato un dsn che non punta ad alcuna libreria predefinita,
in modo da poter specificare qualsiasi libreria nella query... ma questo
non dovrebbe influire sul comportamento del server collegato.
Post by PBsoft
Fatto questo, tramite SSMS Express ho provato a definire un server
collegato, ma l'elenco dei provider è vuoto (ho provato più volte a
farne il refresh). Sinceramente non me lo aspettavo, visto che sul mio
pc dell'ufficio, quell'elenco è altamente popolato (anche se nel mio
ufficio ho SQL 2005 Developer con SP1).
E qui secondo me c'è qualcosa che puzza... io, a parte i driver IBM
OLEDB, ho una serie di provider riguardanti lo stesso SQL Server... non
so se dipende dalla versione differente, ma mi verrebbe da pensare che
non sia così.
Hai per caso installato anche Access nel tuo notebook? Riesci a creare
un server collegato ad un file mdb?
Post by PBsoft
Questo (purtroppo) mi ha fatto ripiegare sul T-SQL e la stored procedure
sp_addlinkedserver.
Ok, il risultato è la stesso che se lo avessi fatto da SSMS.
Post by PBsoft
EXEC sp_addlinkedserver
@server = N'IBMSERVER',
@srvproduct = N'Microsoft OLE DB Provider for ODBC Driver',
@provider = N'MSDASQL',
@datasrc = N'AS400',
@provstr = N'UID=QPGMR;PWD=QPGMR'
Io ho creato il mio server collegato da SSMS, e poi ho fatto creare a
lui lo script, e questo è il risultato:
--------------------------
EXEC master.dbo.sp_addlinkedserver @server = N'AS400', @srvproduct=N'X',
@provider=N'MSDASQL', @datasrc=N'AS400'
--------------------------
Tieni conto che il parametro "nome prodotto = x" è una cosa che ho messo
senza sapere esattamente a cosa serve, nel senso che in SQL Server 2000
non era necessario, mentre in SQL Server 2005 continuava a dirmi che era
obbligatorio. A parte questo, l'averlo impostato a "x" ho influisce
negativamente.
Post by PBsoft
SELECT * FROM OPENQUERY(IBMSERVER, 'SELECT * FROM NSEUCOM01.ANCLI00F')
SELECT * FROM IBMSERVER.S443482A.NSEUCOM01.ANCLI00F
La mia istruzione (naturalmente funziona) è:
SELECT * FROM AS400.[nomeas400].[nomelibreria].[nomefile]
Post by PBsoft
A questo punto, l'unica cosa che ho potuto provare (e stavolta con
successo) è stato utilizzare tramite Access 2003 il DSN precedentemente
creato. Ho creato un nuovo MDB e gli ho collegato tabelle da un'origine
dati ODBC, specificando il DSN in questione ("AS400").
E' stato semplicissimo. In un attimo mi ha chiesto quali file
visualizzare (elencandomi tutti quelli disponibili nella libreria
specificata all'interno del DSN). Ho scelto quelli che volevo e sono
stato in grado di visualizzarne il contenuto senza alcun problema.
Questo mi fa capire che il DSN è corretto.
Già... sembra qualcosa di "sporco" in SQL Server. Come già accennato
sopra, prova a definire un server collegato non all'AS400, ma a
qualcos'altro, così capiamo se è l'AS400 che gli sta antipatico oppure
se sente già aria di vacanze...
Post by PBsoft
- http://tinyurl.com/y5hh8k (SQL MAG)
segnalato anche da Luca Bianchi in un suo intervento, dovrebbe contenere
la procedura precisa per usare un AS/400 come server collegato.
Sfortunatamente bisogna essere abbonati alla rivista per accedere
all'articolo e non è il mio caso.
mmmm... lascia perder l'articolo, secondo me fa più casino che altro.
Per fare ciò che dicono, devi conoscere l'AS400, mentre la procedura
adottata di solita è molto più semplice... non so a livello di
prestazioni, ma visti i molteplici problemi che si incontrano di solito,
IMHO è già un bene avere una procedura semplice ma funzionante.

HTH
--
David Martin
PBsoft
2006-12-18 16:04:04 UTC
Permalink
Post by David Martin
Ok, tieni conto che invece io ho fatto le mie prove con la versione
SQL Server 2005 Developer Edition SP1.
Nel mio ufficio anche io ho la Developer, con la quale, però, non ho ovviamente
potuto provare a linkare il server IBM.
Post by David Martin
Sai quale sia il numero di versione, tanto per curiosità? Io utilizzo
la V5R1M0 con Service Pack SI11806.
Il cd riporta quanto segue: "Windows 5/NT Client V3R2M0".
Post by David Martin
Piccola precisazione: questo sinceramente non l'ho mai fatto, e siccome
tutto funziona direi che quanto hai descritto non è "necessario".
Mi fa piacere quello che hai detto, ma la definizione del DSN richiede il
nome del server IBM, da selezionare tramite una combo. La combo era vuota
finché non ho creato questa "connessione" tramite Operation Manager.
Post by David Martin
Anzi, io l'Operation Manager non lo installo neppure... di solito mi
- componenti minimi richiesti da Client Access Express
- driver per trasferimento dati (oledb, odbc, ecc)
- emulazione terminale
Non sapendo come modificare la procedura di installazione, ho selezionato
"installazione tipica" ed ho lasciato fare al setup.
Post by David Martin
Io ho invece creato un dsn che non punta ad alcuna libreria
predefinita,
in modo da poter specificare qualsiasi libreria nella query... ma questo
non dovrebbe influire sul comportamento del server collegato.
Infatti. Comunque la cosa è voluta, in modo da definire, caso mai, un DSN
diverso nel caso servisse una diversa libreria (ma non è il caso del mio
cliente).
Post by David Martin
E qui secondo me c'è qualcosa che puzza... io, a parte i driver IBM
OLEDB, ho una serie di provider riguardanti lo stesso SQL Server... non
so se dipende dalla versione differente, ma mi verrebbe da pensare che
non sia così.
Purtoppo non sono riuscito a venirne a capo.
Anche sul mio portatile ho la versione 2005 Express with A.S. ed anche lì
l'elenco dei provider è vuoto.

Sulla macchina del mio ufficio, invece, ho SQL 2005 Developer e lì la lista
dei provider è ben nutrita.
Post by David Martin
Hai per caso installato anche Access nel tuo notebook? Riesci a creare
un server collegato ad un file mdb?
No. Ed ho provato sia con un DSN (quindi ODBC) sia via OLE DB.
Sia chiaro: la sp_addlinkedserver non restituisce alcun errore, ma quando
vado a fare una SELECT, ottengo sempre il messaggio di errore 7302

=====================
Messaggio 7302, livello 16, stato 1, riga 1
Cannot create an instance of OLE DB provider "MSDASQL" for linked server
"IBMSERVER".
=====================
Post by David Martin
SELECT * FROM AS400.[nomeas400].[nomelibreria].[nomefile]
Ho provato anche quella sintassi, ma il messaggio di errore è il solito,
sopra riportato.
Post by David Martin
Già... sembra qualcosa di "sporco" in SQL Server. Come già accennato
sopra, prova a definire un server collegato non all'AS400, ma a
qualcos'altro, così capiamo se è l'AS400 che gli sta antipatico oppure
se sente già aria di vacanze...
Ed infatti ho provato il collegamento ad un file MDB presente sulla stessa
macchina dove è installato SQL 2005, ma il messaggio è stato il medesimo,
sia per OLE DB che per ODBC.

Purtroppo credo che il problema siano i provider che sono sballati, ma non
so come ripristinarli.
Ho provato a rimuovere e reinstallare i "componenti workstation", ma non
è servito a niente.
Sul mio portatile ho anche sostituito la versione 2005 express with a.s.
con la 2005 express "base", ma il problema è rimasto.
Sempre sul mio portatile, ho anche provato con MSDE2000, ma anche lì ottengo
gli stessi risultati.

Spero che qualcuno possa aiutarmi perché sono veramente alla frutta.

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution
David Martin
2006-12-18 17:38:02 UTC
Permalink
Post by PBsoft
Post by David Martin
Sai quale sia il numero di versione, tanto per curiosità? Io utilizzo
la V5R1M0 con Service Pack SI11806.
Il cd riporta quanto segue: "Windows 5/NT Client V3R2M0".
Ehm... dire "vecchiotta" è un eufemismo :-)
Purtroppo non ti so dire se con quella versione ci siano problemi o no,
la più vecchia che ho usato era una V4R3.
Post by PBsoft
Post by David Martin
Piccola precisazione: questo sinceramente non l'ho mai fatto, e siccome
tutto funziona direi che quanto hai descritto non è "necessario".
Mi fa piacere quello che hai detto, ma la definizione del DSN richiede
il nome del server IBM, da selezionare tramite una combo. La combo era
vuota finché non ho creato questa "connessione" tramite Operation Manager.
Non mi risulta che sia così, ma potrebbe dipendere dal fatto che i
driver sono diversi.
Nella versione che uso io (ma anche nella meno recente V4R3) non è
necessario selezionare uno dei valori presenti nella combobox, basta
inserire l'indirizzo IP dell'AS400.
Post by PBsoft
Post by David Martin
Anzi, io l'Operation Manager non lo installo neppure... di solito mi
- componenti minimi richiesti da Client Access Express
- driver per trasferimento dati (oledb, odbc, ecc)
- emulazione terminale
Non sapendo come modificare la procedura di installazione, ho
selezionato "installazione tipica" ed ho lasciato fare al setup.
Premesso che potrebbe dipendere dalla diversa versione a cui facciamo
riferimento, ti posso dire che la modifica al setup la fai proprio nel
punto in cui hai selezionato "installazione tipica", nel senso che devi
scegliere una "installazione personalizzata" e quindi puoi modificare la
cartella in cui installare e i componenti da installare.
Logico che se non hai le idee chiare sulle cose a cui stai mettendo
mano, è meglio selezionare l'installazione tipica.
Post by PBsoft
Post by David Martin
E qui secondo me c'è qualcosa che puzza... io, a parte i driver IBM
OLEDB, ho una serie di provider riguardanti lo stesso SQL Server... non
so se dipende dalla versione differente, ma mi verrebbe da pensare che
non sia così.
Purtoppo non sono riuscito a venirne a capo.
Anche sul mio portatile ho la versione 2005 Express with A.S. ed anche
lì l'elenco dei provider è vuoto.
Sulla macchina del mio ufficio, invece, ho SQL 2005 Developer e lì la
lista dei provider è ben nutrita.
Capito. Purtroppo adesso non ho la versione Express a disposizione, da
poter provare. Ma comincio subito il download, e poi domano faccio
qualche prova e ti so dire...
Post by PBsoft
Post by David Martin
Hai per caso installato anche Access nel tuo notebook? Riesci a creare
un server collegato ad un file mdb?
No. Ed ho provato sia con un DSN (quindi ODBC) sia via OLE DB.
Sia chiaro: la sp_addlinkedserver non restituisce alcun errore, ma
quando vado a fare una SELECT, ottengo sempre il messaggio di errore 7302
=====================
Messaggio 7302, livello 16, stato 1, riga 1 Cannot create an instance of
OLE DB provider "MSDASQL" for linked server "IBMSERVER".
=====================
Ok.
Post by PBsoft
Post by David Martin
SELECT * FROM AS400.[nomeas400].[nomelibreria].[nomefile]
Ho provato anche quella sintassi, ma il messaggio di errore è il solito,
sopra riportato.
Post by David Martin
Già... sembra qualcosa di "sporco" in SQL Server. Come già accennato
sopra, prova a definire un server collegato non all'AS400, ma a
qualcos'altro, così capiamo se è l'AS400 che gli sta antipatico oppure
se sente già aria di vacanze...
Ed infatti ho provato il collegamento ad un file MDB presente sulla
stessa macchina dove è installato SQL 2005, ma il messaggio è stato il
medesimo, sia per OLE DB che per ODBC.
Domani provo, e se a me funziona tutto, è evidente che c'è qualcosa che
non va nella tua installazione.
Post by PBsoft
Spero che qualcuno possa aiutarmi perché sono veramente alla frutta.
Vabbé dai, con tutti i dolci che ci aspettano nelle prossime settimane,
un po' di frutta fa bene :-P
Abbi fiducia, domani mi faccio sentire!
--
David Martin
PBsoft
2006-12-18 19:11:59 UTC
Permalink
Post by David Martin
Post by PBsoft
Il cd riporta quanto segue: "Windows 5/NT Client V3R2M0".
Ehm... dire "vecchiotta" è un eufemismo :-)
Questo ti fa capire quale è la voglia del mio cliente di investire in informatica.
Post by David Martin
Premesso che potrebbe dipendere dalla diversa versione a cui facciamo
riferimento, ti posso dire che la modifica al setup la fai proprio nel
punto in cui hai selezionato "installazione tipica", nel senso che devi
scegliere una "installazione personalizzata" e quindi puoi modificare
la cartella in cui installare e i componenti da installare.
Ti ringrazio, ma non si tratta del primo setup.exe che lancio in vita mia :-)
Post by David Martin
Logico che se non hai le idee chiare sulle cose a cui stai mettendo
mano, è meglio selezionare l'installazione tipica.
Ecco, il mio problema è piuttosto questo. Non conosco di preciso cosa installare
e cosa lasciare.
Post by David Martin
Capito. Purtroppo adesso non ho la versione Express a disposizione, da
poter provare. Ma comincio subito il download, e poi domano faccio
qualche prova e ti so dire...
Oggi ho fatto altre prove con una virtual machine dove è installato Windows
2003 Standard.
Ho installato qui il framework 2.0, quindi SQL 2005 Express base e SSMS Express.
In questo modo i provider disponibili venivano elencati correttamente.
Allora ho eliminato i template file ed ho aggiornato l'installazione di SQL
installando SQL 2005 Expr with A.S.
Ho nuovamente riaperto SSMS e vedevo ancora i provider disponibili (stavolta
erano di più).

Ho provato a creare un linked server verso un file MDB sia tramite ODBC che
OLE DB e la SELECT di prova funzionato in entrambi i casi.
Post by David Martin
Domani provo, e se a me funziona tutto, è evidente che c'è qualcosa
che non va nella tua installazione.
Io ti ringrazio per le prove che cortesemente hai detto che farai.
Tuttavia, sono praticamente certo che si tratti di qualcosa legato al sistema
operativo o ad un suo componente.

Ho un portatile con sopra SQL 2005 Expr with A.S. e non c'è stato verso di
far riapparire la lista dei provider, nemmeno rimuovendo e reinstallando
da capo il framework 2.0.
Post by David Martin
Abbi fiducia, domani mi faccio sentire!
Ti ringrazio in anticipo.

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution
David Martin
2006-12-19 07:52:21 UTC
Permalink
Post by PBsoft
Post by David Martin
Post by PBsoft
Il cd riporta quanto segue: "Windows 5/NT Client V3R2M0".
Ehm... dire "vecchiotta" è un eufemismo :-)
Questo ti fa capire quale è la voglia del mio cliente di investire in informatica.
Già... la versione V4R3 a cui ho fatto riferimento nel precedente post,
era legata all'AS/400 che abbiamo acquistato ad inizio '99, e che ormai
fa da soprammobile già da un po'... non oso immaginare di quando sia la
V3R2.
Post by PBsoft
Post by David Martin
Logico che se non hai le idee chiare sulle cose a cui stai mettendo
mano, è meglio selezionare l'installazione tipica.
Ecco, il mio problema è piuttosto questo. Non conosco di preciso cosa
installare e cosa lasciare.
L'unica cosa che veramente servono solo i componenti richiesti, ciò che
si aggiunge lo si fa in funzione di quello che si vuole ottenere:
- l'emulazione terminale, se vuoi collegarti con i terminali 5250;
- controllo stampante, se vuoi controllare le stampanti presenti in AS/400;
- trasferimento dati, se vuoi usare odbc, oledb e gli wizard forniti con
il Client Access, nonché il trasferimento diretto da Excel;
- Operation Manager (ora Operations Navigator) se vuoi controllare tutto
il sistema AS/400 (ora iSeries);
- ecc.
Post by PBsoft
Post by David Martin
Domani provo, e se a me funziona tutto, è evidente che c'è qualcosa
che non va nella tua installazione.
Io ti ringrazio per le prove che cortesemente hai detto che farai.
Tuttavia, sono praticamente certo che si tratti di qualcosa legato al
sistema operativo o ad un suo componente.
Come ci aspettavamo, tutto funziona, sia con la Express che con la
Express A.S.
A questo punto, non c'è molto da fare... provare a reinstallare il
sistema operativo, o rinunciare ad usare il portatile in cui non va...
--
David Martin
PBsoft
2006-12-19 17:02:02 UTC
Permalink
Post by David Martin
Come ci aspettavamo, tutto funziona, sia con la Express che con la
Express A.S.
A questo punto, non c'è molto da fare... provare a reinstallare il
sistema operativo, o rinunciare ad usare il portatile in cui non va...
Ho fatto anche io diverse prove, sia con 2005 Expr base che con 2005 Expr
A.S.
Ho anche rimosso e reinstallato il framework 2.0.

Niente da fare.
Purtroppo non mi resta che reinstallare.

Il grosso problema non è tanto nel mio portatile, che posso reinstallare
quando voglio, specie adesso che ci sono le feste di mezzo, quanto piuttosto
con il computer del cliente!!!

--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution

Loading...