Interoperabilità. Open Database Connectivity (ODBC)



Documenti analoghi
Lezione 9. Applicazioni tradizionali

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Installazione e caratteristiche generali 1

Dispensa di database Access

Trasformazione DB Access In SQL Server. Michele De Nittis

Database e reti. Piero Gallo Pasquale Sirsi

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Corso di Informatica Modulo T3 B2 - Database in rete

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

Data Base in Internet

Access. P a r t e p r i m a

19. LA PROGRAMMAZIONE LATO SERVER

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

Le query. Lezione 6 a cura di Maria Novella Mosciatti

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

Introduzione JDBC interfaccia java.sql driver caricare i driver

Volumi di riferimento

Progetto ittorario Anno scol

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

JDBC versione base. Le classi/interfacce principali di JDBC

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Come usare P-touch Transfer Manager

Online Help StruxureWare Data Center Expert

GUIDA UTENTE MONEY TRANSFER MANAGER

Come trattare il risultato di un comando SQL (relazioni) che

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Manuale per la configurazione di AziendaSoft in rete

La tecnologia ASP.NET e i database

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP.

Struttura logica di un programma

Esercitazione 4 JDBC

Obiettivi del corso. Creare, modificare e formattare un semplice database costituito da tabelle, query, maschere e report utilizzando Access 2000.

Guida Google Cloud Print

Corso BusinessObjects SUPERVISOR

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Applicazione ASP di esempio

Guida Google Cloud Print

JDBC. A. Bechini Accesso a DataD con Java

Installazione di Filenet Content Services 5.3 di Emanuele Mattei (emanuele.mattei[at] .it)

- DocFinance Manuale utente

Database Manager Guida utente DMAN-IT-01/09/10

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at] .

JDBC di base. Le classi/interfacce principali di JDBC

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Installazione MS SQL Express e utilizzo con progetti PHMI

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Indice GAMMA. Guida utente

DBMS ed Applicazioni Motivazioni

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

I database relazionali (Access)

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Unità 2.1 Comandi sui database

Corso basi di dati Installazione e gestione di PWS

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

5.2 UTILIZZO DELL APPLICAZIONE

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

InfoWeb - Manuale d utilizzo per utente DIPENDENTE

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Guida Google Cloud Print

IRSplit. Istruzioni d uso 07/10-01 PC

1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio

GUIDA UTENTE PRIMA NOTA SEMPLICE

Corso di Sistemi di Elaborazione delle informazioni

LEGGERE E VISUALIZZARE I DATI FILTRATI E CALCOLATI DI UNA TABELLA IN UNA PAGINA WEB

Guida Google Cloud Print

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

APPENDICE B Le Active Server Page

LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows

MANUALE CONFIGURAZIONE ED UTILIZZO GATEWAY MBUS-MODBUS (RTU/TCP) MODELLO PiiGAB M900

FRANCESCO MARINO - TELECOMUNICAZIONI

Sicurezza dei file Le protezioni nei programmi

Fast Query Manuale Utente. Fast Query Manuale Utente

Modulo 1. Database: concetti introduttivi

A. Carullo Introduzione a Visual Basic. Introduzione a

PROCEDURA OPERATIVA FASE PREPARATORIA SCRUTINI SISSIWeb

Servizio Telematico Paghe

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Comandi di Internet Explorer per aprire, chiudere e formattare la finestra Comando a menu

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Esercitazione su JDBC

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

Licenza per sito Manuale dell amministratore

MANUALE PARCELLA FACILE PLUS INDICE

Panoramica del software

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

ASP: DOMANDE E RISPOSTE (Q&A)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

Transcript:

Interoperabilità L utilizzo contemporaneo di sorgenti di dati (data source) eterogenee in singole applicazioni è il principale problema in progetti complessi e distribuiti. La soluzione passa attraverso l adozione di standard di comunicazione supportati dai sistemi coinvolti. Tra le varie proposte, per l ambiente Win NT/Win98, lo standard vincente sembra essere ODBC. Open Database Connectivity (ODBC) Open Database Connectivity (ODBC), proposto dalla Microsoft nel 1991, fornisce un interfaccia applicativa standard che permette ad una generica applicazione di accedere a diverse data source eterogenee di tipo relazionale. Tramite un interfaccia ODBC, le chiamate SQL presenti nell applicazione possono accedere ad una sorgente relazionale remota. Il linguaggio supportato da ODBC è una restrizione dell SQL, definito per la prima volta nel 1991 nell ambito dell SQL Access Group (SAG) da un gruppo di circa 50 grandi utenti di DBMS. L architettura ODBC prevede il collegamento tra un applicazione e il server che gestisce i dati attraverso un database driver, una libreria dinamica che un applicazione può richiamare per accedere ad una particolare sorgente. In questo modo un applicazione può accedere a ciascuna sorgente per la quale è disponibile il driver ODBC. Il driver maschera anche le differenze di interazione relative al sistema operativo ed al protocollo di rete utilizzato, facilitando la portabilità delle applicazioni. Infatti, il codice sorgente scritto per un tipo di sorgente di dati (definita su uno specifico DBMS commerciale, sistema operativo e protocollo di rete) non deve essere (che lievemente) modificato nel caso di cambiamento del tipo di sorgente dati.

Architettura ODBC L accesso ad un database (remoto) tramite ODBC richiede la cooperazione di 4 componenti: L Applicazione richiama le funzioni SQL per esequire query ed acquisire i risultati. E trasparente rispetto al protocollo di rete, al sistema operativo ed al server DBMS utilizzati, poiché mascherati dal driver. Il Driver Manager è responsabile di caricare i driver richiesti dall applicazione. Viene fornito da Microsoft e garantisce la gestione della corrispondenza tra i nomi e l inizializzazione dei processi coinvolti. I driver sono responsabili di eseguire le funzioni ODBC, eseguendo le query SQL traducendole nella sintassi (e semantica) del proprio server di accesso. I driver sono anche responsabili della restituzione dei risultati alle applicazioni tramite meccanismi di buffer. La fonte dei dati (Data Source Name) rappresenta il database con il quale si vuole comunicare. I driver inviano le chiamate (opportunamente tradotto) al Data Source che le esegue sul server DBMS.

Ulteriori aspetti di standardizzazione: Linguaggio di interrogazione SQL basato sulle specifiche di SQL-92 Codici di errore di run-time standardizzati Rappresentazione standard dei data-type: ciscun sistema fornisce l eventuale tabella di conversione. Modalità standard di connessione e dei messaggi di log. Stringa di connessione ODBC: indica la sequenza di parametri che sono inviati al driver manager per aprire una connessione ODBC. Ciascun driver prevede parametri comuni ed altri specifici per il proprio server DBMS. Parametri comuni: DSN = ODBC data source name UID = User ID or user name PWD = Password (specify PWD=; for an empty password) DBA = Database attribute (W=write access, R=read-only access)

Connessione ODBC verso SQL SERVER Per aprire una connessione ODBC verso SQL Server occorre: 1. Definire una fonte dati (Data Source) utilizzando il driver di SQL Server. 2. Utilizzare la funzione SQLConnect con l appropriata stringa di connessione ODBC. Codice Visual Basic per l apertura di una connessione ODBC Dim rc As Integer, henv As Long, hdbc As Long Dim Dlen As Integer, DSN As String ' Allocate the environment handle. rc = SQLAllocEnv(henv) ' Allocate a connection handle. rc = SQLAllocConnect(ByVal henv, hdbc) DSN = "MyDSN" UID = "MyUserID" PWD = "MyPassword" ' Connect using the arguments provided. rc = SQLConnect(hdbc, DSN$, Len(DSN$), _ UID, Len(UID), PWD, Len(PWD)) ' Test for a successful connection. If rc = SQL_SUCCESS Or rc = SQL_SUCCESS_WITH_INFO Then Print "Connection open" Else Print "Connection did not open" End If DescribeError henv, hdbc, 0

Connessione ODBC verso ORACLE 8.0 Oracle8 ODBC Driver prevede la gestione della comunicazione attraverso le seguenti funzioni: SQLConnect (DBQ, UID, PWD) DBQ Il Database Service Name. UID user login ID o user name. PWD la password dell utente (PWD=; per specificare password vuota). SQLDriverConnect (DSN, DBQ, UID, PWD) DSN il nome del data source presente nel file odbc.ini. DBQ Il Database Service Name. UID user login ID o user name. PWD la password dell utente. Esempi di stringhe di connessione valide: DSN=Personnel;UID=Kotzwinkle;PWD=; DRIVER={Oracle ODBC Driver}; UID=Kotzwinkle; PWD=whatever; DBQ=instl_alias; SQLProcedures e SQLProcedureColumns Queste funzioni permettono di conoscere le procedure e le funzioni definite dall utente all interno di un pacchetto. Vediamo un esempio, assumendo di aver definito le seguenti procedure: "BAR" "BARX" "XBAR" "XBARX" "SQLPROCTEST.BAR" "SQLPROCTEST.BARX" "SQLPROCTEST.XBAR" "SQLPROCTEST.XBARX"

Cercando "%" or "%%%%%%", ritornano tutte e 8 le procedure. Cercando "%_" o "_%", ritorna: "BAR" "BARX" "XBAR" "XBARX" Cercando "." o ".%" o "%.%" o "SQLProc%." o "SQLProc%.%", ritorna: "SQLPROCTEST.BAR" "SQLPROCTEST.BARX" "SQLPROCTEST.XBAR" "SQLPROCTEST.XBARX" Cercando "%bar", ritorna: "BAR" "XBAR" Cercando ".%bar" o "%.%bar", ritorna: "SQLPROCTEST.BAR" "SQLPROCTEST.XBAR" Cercando "SQLProc%" o ".SQLProc%", ritorna: nothing (0 rows)

Connessione ODBC verso MS ACCESS97 Utilizzando MS Access97 è possibile collegare tabelle di server DBMS attraverso l interfaccia ODBC. Dopo aver effettuato il collegamento, una tabella ODBC può essere manipolata allo stesso modo di quelle proprie : le limitazioni riguardano le funzioni abilitate da driver ODBC. Nell'esempio riportato di seguito viene indicato come collegare la tabella Autori del database ODBC al database corrente. DoCmd.TransferDatabase aclink, "Database ODBC", _ "ODBC;DSN=OrigineDati1;UID=Utente2;PWD=www;LANGUAGE=italiano;" _ & "DATABASE=pub", actable, "Autori", "dboautori" Connessione con ODBCDirect Per eseguire, tramite chiamate a procedura, query ODBC in MS Access97 si utilizza la tecnologia ODBCDirect. ODBCDirect è una tecnologia che consente di utilizzare i server di database ODBC senza caricare il modulo di gestione di database Jet di Microsoft. ODBCDirect si basa sul modello di Microsoft DAO 3.5. Vantaggi dell'accesso ai dati ODBC con ODBCDirect Con ODBCDirect è possibile eseguire il codice in maniera più veloce ed efficiente fornendo l'accesso diretto alle origini dei dati ODBC. Non dovendo caricare il modulo di gestione di database Microsoft Jet, ODBCDirect richiede al client una quantità limitata di risorse. Il server ODBC si occupa dell'intera elaborazione delle query. ODBCDirect fornisce un accesso migliore a funzionalità specifiche del server che non sono disponibili utilizzando ODBC mediante Microsoft Jet. Ad esempio supporta la specifica del cursore. ODBCDirect consente di specificare la posizione del cursore, sia a livello locale che di server. Per interagire con le routine memorizzate a livello di server, inoltre, è possibile specificare i valori di input e verificare i valori restituiti, procedura che non è possibile eseguire con Microsoft Jet. ODBCDirect, inoltre, supporta le query asincrone. Quando si esegue una query, non è necessario attenderne il termine dell'esecuzione prima

di iniziare un'altra operazione. È possibile registrare l'esecuzione della query verificando la proprietà StillExecuting. ODBCDirect supporta l'aggiornamento batch, consentendo di memorizzare nella cache le modifiche apportate all'oggetto Recordset a livello locale e di sottomettere tali modifiche al server in un singolo comando batch. Con ODBCDirect è possibile creare set di risultati semplici e senza cursore o più complessi e con cursore. È inoltre possibile eseguire query che restituiscono qualsiasi numero di set di risultati, limitare il numero di righe restituite e monitorare tutti i messaggi e gli errori generati dall'origine dei dati remota, senza compromettere la prestazione dell'esecuzione della query. Creazione di un'area di lavoro ODBCDirect È possibile creare un'area di lavoro di ODBCDirect specificando la costante dbuseodbc per l'argomento tipo del metodo CreateWorkspace. Una volta creata un'area di lavoro ODBCDirect, è possibile utilizzare specifici oggetti DAO, proprietà e metodi per lavorare con i dati sul server del database ODBC. Esecuzione di query con ODBCDirect E possibile creare ed eseguire una query SQL su di una sorgente ODBC utilizzando l oggetto QueryDef. Un oggetto QueryDef è una definizione memorizzata di una query in un database Microsoft Jet o in un'area di lavoro di ODBCDirect. Set querydef = oggetto.createquerydef (nome, testosql) querydef Variabile di oggetto che rappresenta l'oggetto QueryDef che si desidera creare. oggetto Variabile di oggetto che rappresenta un oggetto Connection o Database aperto che contiene il nuovo oggetto QueryDef. nome Opzionale. Tipo di dati Variant di sottotipo String che assegna un nome univoco al nuovo oggetto QueryDef. Testosql Opzionale. Tipo di dati Variant di sottotipo String, vale a dire un'istruzione SQL valida che definisce l'oggetto QueryDef. Se si omette questo argomento, è possibile definire l'oggetto QueryDef impostando la sua proprietà SQL prima o dopo averlo accodato ad un insieme.

Per eseguire l'istruzione SQL in un oggetto QueryDef, utilizzare il metodo Execute o OpenRecordset. In un'area di lavoro ODBCDirect, l'argomento testosql può specificare un'istruzione SQL o una procedura memorizzata Microsoft SQL Server e i suoi parametri. L'utilizzo di un oggetto QueryDef è il modo migliore per eseguire delle query SQL di tipo pass-through con database ODBC. Query di tipo pass-through Utilizzando le query di tipo pass-through è possibile inviare comandi direttamente ad un server di database ODBC (quale Microsoft SQL Server). Con le query di tipo pass-through, vengono utilizzate direttamente le tabelle presenti sul server invece di stabilire un collegamento. 1 Creare una nuova query. 2 Scegliere Specifica SQL dal menu Query, quindi scegliere Pass- Through. 3 Sulla barra degli strumenti, fare clic su Proprietà per visualizzare la finestra delle proprietà della query. 4 Nella finestra delle proprietà della query, impostare la proprietà StringaConnessODBC per specificare informazioni sul database al quale si desidera collegarsi. È possibile digitare le informazioni relative alla connessione o fare clic sul pulsante dei generatori, quindi immettere le informazioni relative al server a cui si sta effettuando il collegamento. 5 Se la query non è del tipo che restituisce record, impostare la proprietà RestituisciRecord a No. 6 Nella finestra Query SQL pass-through, digitare la query di tipo passthrough. 7 Per eseguire la query, fare clic su Esegui sulla barra degli strumenti. Per una query di tipo pass-through che restituisce record, è possibile invece fare clic sul pulsante delle visualizzazioni sulla barra degli strumenti.

Routine di esecuzione di query con ODBCDirect Public Sub eseguiqueryodbc() Dim wrkodbc As Workspace Dim qdf As QueryDef Dim strsql As String Dim conimp As Connection Dim rs As Recordset Set wrkodbc = CreateWorkspace("ODBCWorkspace", "admin", _ "", dbuseodbc) Workspaces.Append wrkodbc Set conimp = wrkodbc.openconnection("provadoc1",,, _ "ODBC;DATABASE=doc1;UID=doc1;PWD=aohgf;DSN=provadoc1") strsql = "SELECT NOME FROM DIPENDENTE" Set qdf = conimp.createquerydef(conimp.name, strsql) Set rs = qdf.openrecordset() While Not rs.eof Debug.Print rs!nome rs.movenext Wend wrkodbc.close End Sub