while (strcmp((char *)n_proj_lu.arr,"fin")) { /* saisie des informations */ nom_proj.len =asks("\n\n Entrez le nom du projet: ", nom_proj.

Documents pareils
Configurer la supervision pour une base MS SQL Server Viadéis Services

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Attaques applicatives

Devoir Data WareHouse

MS SQL Express 2005 Sauvegarde des données

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Cours Bases de données 2ème année IUT

Programmation système de commandes en C

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

TP2 : tableaux dynamiques et listes chaînées

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Présentation Windows Azure Hadoop Big Data - BI

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Paginer les données côté serveur, mettre en cache côté client

SQL Historique

Les structures de données. Rajae El Ouazzani

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Mysql avec EasyPhp. 1 er mars 2006

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

PROJET 1 : BASE DE DONNÉES REPARTIES

Gestion de base de données

Programmation en langage C

BASES DE DONNEES TP POSTGRESQL

Le système de gestion des fichiers, les entrées/sorties.

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Introduction aux Bases de Données 2004/2005

Partie 0 : Gestion des tablespace et des utilisateurs... 3

BTS/CGO P10 SYSTEME INFORMATION Année

Programmation système I Les entrées/sorties

Bases de données avancées

INFO-F-404 : Techniques avancées de systèmes d exploitation

3IS - Système d'exploitation linux - Programmation système

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Corrigés détaillés des exercices

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés Volubis.fr

Le prototype de la fonction main()

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Les structures. Chapitre 3

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

PHP et les Bases de données - Généralités

Cours 6 : Tubes anonymes et nommés

Chap III : Les tableaux

CREATION WEB DYNAMIQUE

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Projet de programmation (IK3) : TP n 1 Correction

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

Olivier Mondet

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

DNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN

Historisation des données

Introduction au langage C

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Cours Programmation Système

Sécurité des applications web. Daniel Boteanu

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Installation d'un serveur FTP géré par une base de données MySQL

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Les fichiers. Chapitre 4

Les bases fondamentales du langage Transact SQL

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

Le langage procédural PL-PGSQL

Introduction à JDBC. Accès aux bases de données en Java

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Algorithmique et Programmation, IMA

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Notes de cours : bases de données distribuées et repliquées

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

PDO : PHP Data Object 1/13

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Testez votre installation. Créer un répertoire vide

Programmation Classique en langage C

Intégrité sémantique dans les bases de données relationnelles

Stockage du fichier dans une table mysql:

Cours de C. Allocation dynamique. Sébastien Paumier

OUTIL DE TRAVAIL COLLABORATIF

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Derrière toi Une machine virtuelle!

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Le langage C. Séance n 4

Programmation C. J.-F. Lalande. 15 novembre 2012

Les débordements de tampons et les vulnérabilités de chaîne de format 1

INITIATION A LA PROGRAMMATION

Les processus légers : threads. Système L3, /31

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Programmation système en C/C++

Transcription:

#include <ctype.h> #include <stdio.h> #include <string.h> EXEC SQL BEGIN DECLARE SECTION; VARCHAR user[20]; VARCHAR pwd[20]; VARCHAR n_equ[8]; VARCHAR n_equ_w[8]; VARCHAR nom_equ[30]; VARCHAR n_proj[8]; VARCHAR n_proj_lu[8]; VARCHAR nom_proj[20]; VARCHAR nom_proj_w[20]; VARCHAR n_cher_resp[11]; VARCHAR nom_cher_resp[10]; VARCHAR n_cher[11]; VARCHAR nom_cher[10]; VARCHAR nom_cher_w[10]; VARCHAR n_specialite[10]; VARCHAR nom_spec[30]; int nb_jour_sem; int nb_proj_w; int nb_cher_spec; EXEC SQL END DECLARE SECTION; EXEC SQL INCLUDE sqlca.h; connection() /* entree du mot de passe et du nom */ user.len=asks("entrer votre user : ",user.arr); pwd.len=asks("entrer votre pwd : ",pwd.arr); /* connection a la base */ EXEC SQL WHENEVER SQLERROR GOTO erreur; EXEC SQL CONNECT :user IDENTIFIED BY :pwd; printf("\n Connexion reussie...\n"); return(1); erreur: printf("\nerreur a la connection... "); errpt(); return(0); EXEC SQL WHENEVER SQLERROR selection() while (strcmp((char *)n_proj_lu.arr,"fin")) /* saisie des informations */ nom_proj.len =asks("\n\n Entrez le nom du projet: ", nom_proj.arr);

nom_proj.arr[nom_proj.len]='\0'; n_equ.len =asks("\n\n Entrez le numero de l'equipe: ", n_equ.arr); n_equ.arr[n_equ.len]='\0'; n_cher_resp.len =asks("\n\n Entrez le numero du chercheur responsable: ", n_cher_resp.arr); n_cher_resp.arr[n_cher_resp.len]='\0'; n_specialite.len =asks("\n\n Entrez la specialite: ", n_specialite.arr); n_specialite.arr[n_specialite.len]='\0'; EXEC SQL WHENEVER SQLERROR GOTO erreur2; EXEC SQL DECLARE c1 CURSOR FOR SELECT n_chercheur, nom_chercheur FROM chercheur c WHERE c.n_equipe=:n_equ AND c.specialite=:n_specialite; /* verification des informations saisies */ /* existence de l'equipe */ EXEC SQL WHENEVER NOT FOUND GOTO equipe_inconnue; EXEC SQL SELECT nom_equipe INTO :nom_equ FROM equipe WHERE n_equipe=:n_equ; EXEC SQL WHENEVER NOT FOUND /* existence de la specialite */ EXEC SQL WHENEVER NOT FOUND GOTO specialite_inconnue; EXEC SQL SELECT nom_specialite INTO :nom_spec FROM specialite WHERE specialite=:n_specialite; EXEC SQL WHENEVER NOT FOUND /* le chercheur responsable appartient a l'equipe */ EXEC SQL SELECT n_equipe INTO :n_equ_w FROM chercheur WHERE n_chercheur=:n_cher_resp; n_equ_w.arr[n_equ_w.len]='\0'; if (strcmp((char *)n_equ_w.arr,(char *)n_equ.arr)) goto mauvaise_equ_cher_resp; /* le projet n'existe pas deja */ EXEC SQL SELECT count(*) INTO :nb_proj_w FROM projet WHERE n_projet=:n_proj_lu; if (nb_proj_w==1) goto projet_existant; EXEC SQL SELECT count(*) into :nb_cher_spec FROM chercheur c WHERE c.n_equipe=:n_equ

AND c.specialite=:n_specialite; if (nb_cher_spec==0) goto aucun_cher_spec; /* insertion du projet */ EXEC SQL INSERT INTO PROJET VALUES (:n_proj_lu,:nom_proj,:n_equ,:n_cher_resp,0,0); EXEC SQL OPEN c1; EXEC SQL WHENEVER NOT FOUND GOTO fin_c1; while(1) EXEC SQL FETCH c1 into :n_cher, :nom_cher; n_cher.arr[n_cher.len]='\0'; nom_cher.arr[nom_cher.len]='\0'; printf("\n Chercheur : %s ",nom_cher.arr); printf("\n entrez le nb de jours sur ce projet: "); scanf("%d",&nb_jour_sem); EXEC SQL INSERT INTO TRAVAILLER VALUES (:n_proj_lu,:n_cher,:nb_jour_sem); fin_c1: EXEC SQL CLOSE c1; EXEC SQL COMMIT ; printf ("\n transaction reussie..."); equipe_inconnue: printf("cette equipe n'existe pas.."); specialite_inconnue: printf("cette specialite n'existe pas.."); n_proj_lu.len =asks("\n\n Entrez le numero du projet ou 'fin': ", mauvaise_equ_cher_resp: printf("\n le chercheur responsable n'appartient pas a l'equipe...");

projet_existant: printf("\n le projet existe deja..."); aucun_cher_spec: printf("\n aucun chercheur de l'equipe n'a cette specialite..."); return; erreur2: EXEC SQL ROLLBACK; printf("erreur lors de la transaction..."); errpt(); return(0); EXEC SQL WHENEVER SQLERROR main() if (connection()) selection(); sortie(); else arret(); sortie() EXEC SQL COMMIT RELEASE; arret() EXEC SQL ROLLBACK RELEASE; errpt() printf("\n%.70s (%d)\n",sqlca.sqlerrm.sqlerrmc, -sqlca.sqlcode);

int askn(text,variable) char text[]; int *variable; char s[20]; printf(text); if ( gets(s) == (char *)0 ) return(eof); *variable = atoi(s); return(1); int asks(text,variable) char text[],variable[]; printf(text); return( gets(variable) == (char *)0? EOF : strlen(variable) );