2)
-transact-sql
-nuova origine dati
-altri server
-ibm UDB FOR ISERIES IBMDA400 OLE DB PROVIDER
-come origine dati metto il nome dell'as400
-utente - password
-senza catalogo iniziale non mi fa vedere poi nessuna tabella, mettendo
come catalogo iniziale query mi dà errore quindi non arrivo alla fine
della procedura..
Chiedo qui perchè alla fine...la tabella collegata sarà una vista di
sql ..
Grazie per l'attenzione
ciao sono quasi certo che gli adp si collegano solo a sql server in tutte le
sue versioni più recenti.
se vuoi utilizzare access con as 400 devi necessariamente utilizzare gli mdb
con tabelle collegate via odbc oppure via pass throug.
attendo smentite, ma dubito.
Ciao Michele,
hai provato a definire un linked server ad AS/400 e per comodità una vista
in un database SQL Server che interroga l'oggetto remoto utilizzando il
four-part name? Dal progetto ADP potrai eseguire la vista SQL Server per
accedere ai dati remoti.
"OLE DB Provider for DB2"
http://msdn2.microsoft.com/en-us/library/ms178027.aspx
http://blogs.msdn.com/dotnetinterop/archive/2006/01/19/514702.aspx
http://blogs.msdn.com/dotnetinterop/archive/2006/01/20/514709.aspx
"Creating a linked server to DB2 using Microsoft OLE DB provider for DB2"
http://support.microsoft.com/default.aspx?scid=kb;en-us;222937
"INFO: DB2OLEDB Supports UPDATE/DELETE from SQL Linked Server"
http://support.microsoft.com/kb/287093/EN-US/
Oppure se hai già il Client Access:
"OLE DB Provider for ODBC (Database Engine)"
http://msdn2.microsoft.com/en-us/library/ms191462.aspx
> Grazie per l'attenzione
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
> MICHELE wrote:
> > Per la prima volta sto cercando di collegare una tabella as400 ad un
> > file ADP (collegato ad sql-express) ma mi dà errore
>
> Ciao Michele,
>
> hai provato a definire un linked server ad AS/400 e per comodità una vista
> in un database SQL Server che interroga l'oggetto remoto utilizzando il
> four-part name? Dal progetto ADP potrai eseguire la vista SQL Server per
> accedere ai dati remoti.
>
> "OLE DB Provider for DB2"
> http://msdn2.microsoft.com/en-us/library/ms178027.aspx
>
> http://blogs.msdn.com/dotnetinterop/archive/2006/01/19/514702.aspx
> http://blogs.msdn.com/dotnetinterop/archive/2006/01/20/514709.aspx
>
> "Creating a linked server to DB2 using Microsoft OLE DB provider for DB2"
> http://support.microsoft.com/default.aspx?scid=kb;en-us;222937
>
> "INFO: DB2OLEDB Supports UPDATE/DELETE from SQL Linked Server"
> http://support.microsoft.com/kb/287093/EN-US/
>
> Oppure se hai già il Client Access:
>
> "OLE DB Provider for ODBC (Database Engine)"
> http://msdn2.microsoft.com/en-us/library/ms191462.aspx
Ciao Lorenzo,
sono nel secondo caso ho installato il Client Access per Iseries.
ma non ho ben capito come si fa a fare un linked server ad AS/400
1) creo una origine dati di sistema sul pc dove c'è SQL-server.
L'origine dati l'ho fatta usando Client Access ODBC Driver (32-bit)
il suo nome è AS1
2) Apro Microsoft SQL Server Management Studio Express ma se faccio
connetti mi chiede server utente e password...ovviamente non
funziona..non saprei dove inserire l'origine dati fatta..
Nell'articolo citato dice di fare :
Execute sp_addlinkedserver to create the linked server, specifying
MSDASQL or NULL as provider_name, and the name of an ODBC system data
source as data_source.
ma sinceramente non ho ben capito dove bisogna fare questa cosa..nel
mio caso dovrebbe essere così? Dove SQLAdWorks è il nome del server
linked
sp_addlinkedserver 'SQLAdWorks', ' ', 'MSDASQL', 'AS1'
Grazie per l'attenzione
Loggati all'istana con una login appartenente alla fixed server role
sysadmin o setupadmin e fai click sul bottoncino "New Query":
EXEC sp_addlinkedserver 'SQLAdWorks', ' ', 'MSDASQL', 'AS1'
Una volta aggiunto il linked server SQLAdWorks ti apparirà nella treeview di
SX in Server Objects > Linked Server.
Per referenziare un oggetto remoto potrai usare il four-part name, ovvero
linkedserver.catalog.schema.oggetto oppure se desideri eseguire una query
pass-through utilizza la funzione OPENQUERY:
http://msdn2.microsoft.com/en-us/library/ms188427.aspx
Ho provato a fare new query
SELECT * FROM SQLAdWorks.QUERY.DISTGTI
ma la voce catalog non so cosa sia per as400
Nella ORIGINE DATI DI SISTEMA (DSN) che ho creato ( funziona con un
normale mdb)
la libreria predefinita SQL è QUERY
nell'elenco librerie c'è QUERY
allora ho provato
SELECT * FROM SQLAdWorks.QUERY.QUERY.DISTGTI
e mi dice:
Il provider OLE DB "MSDASQL" per il server collegato "SQLAdWorks" ha
restituito il messaggio "[Microsoft][Driver Manager ODBC] Funzione
SQLSetConnectAttr del driver non riuscita.".
Il provider OLE DB "MSDASQL" per il server collegato "SQLAdWorks" ha
restituito il messaggio "[IBM][iSeries Access ODBC Driver]Errore di
collegamento alle comunicazioni. comm rc=8001 - CWBSY0001 - L'utente SA
non esiste sul server ASPIPPO, Password length = 6, Prompt Mode =
Never, System IP Address = XX.XX.XX.XX".
Per il secondo errore perchè usa SA quando nella origine dati ho
scelto utilizza ID di Iseries Navigator?
Grazie per l'attenzione!
> > Una volta aggiunto il linked server SQLAdWorks ti apparirà nella treeview di
> > SX in Server Objects > Linked Server.
> Fino a qui tutto ok ma speravo di sfogliare questo server...
>
> Ho provato a fare new query
> SELECT * FROM SQLAdWorks.QUERY.DISTGTI
> ma la voce catalog non so cosa sia per as400
> Nella ORIGINE DATI DI SISTEMA (DSN) che ho creato ( funziona con un
> normale mdb)
> la libreria predefinita SQL è QUERY
> nell'elenco librerie c'è QUERY
> allora ho provato
> SELECT * FROM SQLAdWorks.QUERY.QUERY.DISTGTI
> e mi dice:
Il problema derivava dalla creazione del linked server
con questo funziona:
sp_addlinkedserver @server = 'NOMESERVERLINKED' , @srvproduct =
'AS400 Client Access'
, @provider = 'MSDASQL' , @datasrc = 'origine_dati'
, @provstr = 'UID=utente ;PWD=password;'
Nelle propriietà del server linked ho aggiunto
account di accesso locale sa e come utente remoto un utente di as400
Poi la select va fatta così
Select * from as400sver.numeroserie.LIBRERIA.TABELLA
Grazie Lorenzo e ringrazio anche Luca...