sql sommario 26-10-2001 14:23 Pagina V Indice Introduzione PARTE PRIMA Capitolo 1 ● CONCETTI DI BASE XIII 1 MySQL per amministratori di database e sviluppatori Access e SQL Server 3 1.1 Perché usare MySQL 4 1.2 Licenza 4 1.3 Confronto fra i tipi di dati di MySQL e quelli di Access 2000 e SQL Server 7 5 1.4 Carenze di MySQL 7 Interfaccia grafica: “Houston, abbiamo un problema!” 8 1.5 MySQL, MYSQL e mysql 13 1.6 Dedicato agli utenti di Access: demoni e servizi 16 Avviare il demone mysql (mysqld) in tutta sicurezza 17 1.7 Dove trovare MySQL 17 1.8 Scelta del metodo di installazione: pro e contro 18 Installazione RPM: la più facile e veloce 18 Installazione dal codice sorgente (solo per utenti esperti) 19 1.9 Tutto ciò che serve per l’installazione RPM 20 Installazione 20 1.10 Ciclo vitale di un database: creazione, accesso ed eliminazione 25 1.11 Costrutti SQL non standard o specifici di MySQL (estensioni allo standard ANSI SQL92) 28 Esecuzione di MySQL in modalità ANSI 33 1.12 Utilità e programmi per MySQL 33 sql sommario VI 26-10-2001 14:23 Pagina VI INDICE 1.13 Capitolo 2 Capitolo 3 34 43 43 47 GTK+ e gli sviluppatori Visual Basic 2.1 Perché usare GTK+ 2.2 Dove trovare GTK+ e come installarlo 2.3 Licenza 2.4 Panoramica su GTK+ Fasi della creazione di un programma GTK+ Gerarchia degli oggetti GLib e GDK Widget, non controlli Segnali e callback Il primo, semplice programma Compilazione del programma Uso dei widget GtkWindow e GtkFixed o GtkLayout al posto dei form Visual Basic Widget GTK+ e ordine di tabulazione 2.5 Contenitori GTK+ come controlli ridimensionatori Widget GtkVBox e GtkHBox Widget GtkTable Widget GtkWindow Escursione sui widget di base 51 52 53 53 55 55 55 56 57 58 59 60 Altri 3.1 3.2 3.3 3.4 97 97 103 112 3.5 Capitolo 4 Uso di isamchk per l’analisi e la riparazione delle tabelle danneggiate API C di MySQL Da non fare sul computer di produzione Compilazione e link widget GTK+ Widget GtkCombo Widget GtkProgressBar e GtkStatusBar Widget GtkFrame e GtkAspectFrame Widget GtkDialog, GtkFileSelection, GtkColorSelectionDialog e GtkFontSelectionDialog Widget Menu, ItemFactory e Popup Widget di layout avanzati 4.1 Widget GtkTable 4.2 Widget GtkTree e GtkCTree 4.3 Widget GtkFixed 4.4 Widget GtkLayout 4.5 Widget GtkScrolledWindow 4.6 Widget GtkNotebook 4.7 Widget GtkPaned 61 63 63 64 64 64 65 118 128 139 139 146 153 156 159 162 167 sql sommario 26-10-2001 14:23 Pagina VII I N D I C E VII Capitolo 5 Glade e gli sviluppatori Visual Basic 171 5.1 A proposito di Glade 171 Perché utilizzare Glade 172 Dove trovare Glade e come installarlo 172 5.2 Realizzazione del programma HelloWorld con Glade 173 HelloWorld passo per passo 173 Compilazione ed esecuzione 181 5.3 I file di HelloWorld visti da vicino 183 File main.c 183 File interface.c 185 File support.c 187 File callbacks.c 191 5.4 Gerarchia dei widget 194 Finestra del progetto 194 Finestra Palette 195 Finestra Properties 197 5.5 Definizione della gerarchia degli oggetti del progetto 198 Finestra Widget Tree 198 5.6 Comunicazione tra finestre in un progetto Glade 199 Stabilire la comunicazione fra widget di finestre diverse 199 Funzione lookup_widget() 200 Un semplice esempio 200 5.7 Variabili globali e ingegneria 206 PARTE SECONDA Capitolo 6 ● IMPLEMENTAZIONI REALI Concetti di base e struttura dell’applicazione SESI Order Entry 6.1 Definizione del problema e progettazione Specifiche hardware Informazioni sulla rete Informazioni sui dati esistenti Specifiche del processo attuale Il nuovo processo Caratteristiche del software 6.2 Interfaccia utente Immissione dei dati del cliente (frm_main) Selezione dei prodotti ordinati (frm_items_ordered) Finestre di ricerca Creazione del database Distribuzione dell’applicazione Aggiornamento dell’applicazione 209 211 212 212 212 212 213 213 214 215 215 217 218 219 222 224 sql sommario 26-10-2001 14:23 Pagina VIII VIII I N D I C E Capitolo 7 Realizzazione dell’applicazione SESI Order Entry 7.1 Costruzione dell’interfaccia utente con Glade Creazione del progetto frm_main Completamento del lato sinistro di frm_main Completamento del lato destro di frm_main Ultimazione dell’interfaccia utente frm_main Impostazione degli eventi per frm_main Creazione di frm_items_ordered Completamento del lato destro di frm_items_ordered Impostazione degli eventi per frm_items_ordered 7.2 Funzioni di utilità dell’applicazione Creazione del file sesi_utils.c 7.3 Connessione dell’interfaccia alle funzioni di utilità File main.c 7.4 Compilazione del programma 7.5 Relazione finale sul progetto 229 230 230 231 232 234 236 239 240 242 244 244 291 304 305 306 Capitolo 8 Concetti di base e struttura dell’applicazione Worldwide Commissions 309 8.1 Definizione del problema 309 Informazioni per l’utente finale 311 Informazioni sui dati esistenti 312 8.2 Interfaccia utente 313 Finestra di accesso (frm_login) 313 Form per la visualizzazione dei dati (frm_table_display) 314 Form per il calcolo delle commissioni (frm_commissions) 316 8.3 Creazione del database e delle tabelle di accesso 318 8.4 Creazione del database 320 Capitolo 9 Realizzazione dell’applicazione Worldwide Commissions 9.1 Realizzazione dell’interfaccia utente con Glade Creazione di frm_table_display Creazione di frm_commissions 9.2 Controllo di visualizzazione dati (DDC) 9.3 Funzioni di utilità dell’applicazione Intestazione, registrazione e visualizzazione dei messaggi Accesso e password 331 331 332 333 335 340 340 344 sql sommario 26-10-2001 14:23 Pagina IX INDICE 9.4 9.5 Principali funzioni per l’elaborazione dei dati File callbacks.c Relazione finale sul progetto IX 351 381 391 Capitolo 10 Distribuzione dell’applicazione Worldwide Commissions 393 10.1 Compilazione dalla riga di comando 393 10.2 Vantaggi di Make 394 10.3 Distribuzione dell’applicazione 396 Configurazione manuale della barra di avvio di GNOME 396 Configurazione della barra di avvio di GNOME con uno script della shell 401 Aggiunta delle istruzioni di installazione al file make 402 10.4 Creazione del pacchetto RPM 404 Contenuto del file di specifiche RPM 409 10.5 Compilazione per Win32 con Microsoft Visual C++ 410 File necessari 410 Configurazione del progetto e compilazione 411 Distribuzione dell’eseguibile per Windows 414 File dell’area di lavoro del progetto 416 Capitolo 11 Concetti di base e struttura dell’applicazione Key Business Indicators 11.1 Definizione del problema Problemi di sicurezza Informazioni sui dati esistenti 11.2 Interfaccia utente Finestra principale (frm_reports) Report 1: formato tabulare (classifica dei rappresentanti) Report 2: grafico a torta (vendite per settore) Report 3: grafico a barre (confronto tra vendite dell’anno e obiettivi) Report 4: grafico a dispersione (ricerca delle correlazioni fra i dati numerici) 11.3 Creazione del database e impostazioni di accesso 11.4 Creazione del database 421 421 421 422 422 422 423 424 425 425 427 427 sql sommario X 26-10-2001 14:23 Pagina X INDICE Capitolo 12 Capitolo 13 PARTE TERZA ● Capitolo 14 PARTE QUARTA Appendice A Appendice B Realizzazione dell’applicazione Key Business Indicators 12.1 Definizione del problema 12.2 Applicazione principale 12.3 Report 1: tabella 12.4 Report 2: grafico a torta 12.5 Report 3: grafico a barre 12.6 Report 4: grafico a dispersione 431 431 431 445 453 465 474 Compilazione dell’applicazione Key Business Indicators 13.1 Compilazione e distribuzione tramite RPM File make File di specifiche RPM 13.2 Compilazione con MinGW per Win32 Che cos’è MinGW File e URL necessari Configurazione del progetto e compilazione 487 487 487 491 494 494 494 495 UN ESEMPIO 501 Controllo dinamico dell’interfaccia con XML 503 14.1 Ancora HelloWorld! 503 14.2 Comunicazione tra finestre 510 14.3 Modifica del programma senza ricompilazione 519 ● APPENDICI 523 File generati da Glade per l’applicazione SESI Order Entry A.1 File interface.c A.2 File sesi.glade 525 525 560 File generati da Glade per l’applicazione Worldwide Commissions B.1 File interface.c B.2 File sesi.glade 613 613 637 sql sommario 26-10-2001 14:23 Pagina XI I N D I C E XI Appendice C File generati da Glade per l’applicazione Key Business Indicators C.1 File di Glade per KBI File interface.c di KBI File kbi.glade C.2 File di Glade per il report tabulare File interface.c dell’eseguibile del report tabulare File tabular.glade C.3 File di Glade per il grafico a torta File interface.c dell’eseguibile del grafico a torta File piechart.glade C.4 File di Glade per il grafico a barre File interface.c dell’eseguibile del grafico a barre File barline.glade C.5 File di Glade per il grafico a dispersione File interface.c dell’eseguibile del grafico a dispersione File scatter.glade Indice analitico 679 679 679 682 685 685 688 691 691 694 697 697 698 701 701 705 711 sql sommario 26-10-2001 14:23 Pagina XII