Page 1 sur 1

[Sript SQL + BD2]

Posté : 24 oct. 2016, 10:52
par Loleyyz
Bonjour à vous,

Je viens vers vous aujourd'hui avec un sac rempli de question malheureusement pour vous.

Voici la problématique actuel :

Mon entreprise me demande de réaliser deux type de script : SQL + BD2
Sachant que je suis en Master Administrateur réseau, ce n'est pas quelque chose que je fait souvent. (Voir très rarement)


SQL Server (French_CI_AS_KS_WS pour le "Collation name" et propriétés : onglet Options, cocher "ANSI NULL default") / Oracle, pour les users suivant (user/password) :
o ksl_63_en_cours/xxxxx
o ksl_63_en_test/xxxxx

----------------------------------------------------------------------------------------------------------------------------------------------------------------------
DB2 (avec tablespace par defaut de 32K) pour les users suivant (user/password) :
o REC63REF/xxxxx
o REC63TST/xxxxx



Il faudrait que les nom des users plus le mot de passe soit des variables initialisés au début des scripts.

je ne vous cache pas que je fait des recherches sur une manière de réaliser ces scripts depuis ce matin 8 heures, et je n'ai rien trouver de probant.
Pensez vous pouvoir m'aider ?...

Cordialement

Re: [Sript SQL + BD2]

Posté : 24 oct. 2016, 13:13
par moogli
salut,

tu n'arrives pas a créer des variables dans un script php ?

http://www.lephpfacile.com/cours/2-decl ... -variables

@+

@+

Re: [Sript SQL + BD2]

Posté : 24 oct. 2016, 13:17
par Loleyyz
Bonjour moogli,

Le problème n'étant pas de créer une variable mais de savoir à quoi ressemble le script demander. J'ai pourtant fait énormément de recherche et je ne trouve rien qui se rapproche de prêt ou de loin.

Re: [Sript SQL + BD2]

Posté : 24 oct. 2016, 15:06
par ynx
Salut,

J'ai peut être mal lu/compris mais il semble que tu ne détailles pas ce que doivent faire ces scripts.
Peux tu stp préciser les fonctionnalités attendus pour ces scripts ?

Bonne journée,

Re: [Sript SQL + BD2]

Posté : 24 oct. 2016, 15:45
par moogli
Effectivement on ne sais pas ce que tu veux faire, du coup tu ne peux pas avoir d'exemple.

pour faire une requête vers une base de données utilise PDO il y a des exemples d'utilisation dans la documentation.

pour db2 il y aune extension pour cela : http://php.net/manual/fr/book.ibm-db2.php, la première fonction a utiliser est db2_connect

ensuite en fonction de ce que ut as besoin de faire les choses peuvent être différente.
Ceci dit un minium d'organisation, tel qu'utiliser le motif de conception MVC, ets une base.
perso je te conseillerais d'avoir uen couche 'DAO' et des objets auquel tu passes la connexion à utiliser.
tu peux aussi utiliser le pattern factory gérer les connexions à utiliser pour les bases.
Mais ce qui est certains c'est qu'en aucun cas tu ne dois dupliquer les connexions aux bases.
Pour les informations de connexin il est courant d'utiliser des constantes (non modifiable c'est rassurant).
Ensuite les constantes peuvent très bien créé avec des informations provenant d'un fichier de configuration (clef / valeur, json, yml etc).
Cette façon de faire permet d'éviter que des gens non technique viennent foutre le brin dans le code (par exemple le mec qui va mettre en prod en utilisant notepad pour modifier les info de connexion et bien sur modifier l'encodage de ton fichier au passage, ou oublier un point virgule, modifier un nom de variable etc etc.

@+

Re: [Sript SQL + BD2]

Posté : 25 oct. 2016, 11:22
par Loleyyz
Bonjour à vous,

Par rapport à ce que les scripts doivent faire :

Les développeurs sorte de nouvelle version de logiciel (KSL suite) qui est basé sur une base de donnée.
Pour chaque nouvelle version nous devons supprimer la base et la recrée.

Mon tuteur m'a demander donc de faire un script qui pourrais nous permettre de recrée la base vierge à chaque fois au lieux de tout faire à la main.

Après pas mal de recherche, je suis tomber sur ce site http://solutioncenter.apexsql.com/trans ... ed-logins/

Qui donne ce genre de script :

USE [master]
GO

/* For security reasons the login is created disabled and with a random password. */
/****** Object: Login [dnnuatuser] Script Date: 2/28/2015 2:40:23 AM ******/
CREATE LOGIN [dnnuatuser] WITH PASSWORD=N'î覫ù±_K¨_þèDÙ=^R|''î_ƒK¤_¶qù[(', DEFAULT_DATABASE=[AdventureWorks2014],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO

ALTER LOGIN [dnnuatuser] DISABLE
GO


C'est exactement ce que je dois faire, malheureusement j'ai du mal à comprendre le code écrit dedans et surtout si il fonctionne correctement ou non.
A partir de la, il faudrait que je l'adapte pour du DB2 et ORACLE.

Cordialement

Re: [Sript SQL + BD2]

Posté : 26 oct. 2016, 13:38
par moogli
supprimer la base ?
quid des données existantes ?
un script de migration serait plus appropriée.

Le bout de code que tu indiques semble créer un utilisateur de la base de données.
tu peux faire un dump de la base de données, soit toi même soit avec les outils de celle ci.
tu dois pouvoir récupérer les utilisateurs pour le recréer ensuite.

après ce que tu veux faire au final ne semble pas claire.

supprimer une bases schéma c'est simple tu dois savoir le faire.

en règle générale pour la mise à jour d'une base il y a un script de "migration" (a grand coup d'alter table).
cela permet de garder les données déjà utilisées et d'ajouter les nouvelles (sinon c'est super lourd de tout péter et de recommencer, pauvre utilisateur ;) )


@+

Re: [Sript SQL + BD2]

Posté : 26 oct. 2016, 13:51
par Loleyyz
Bonjour à vous tous,

J'ai enfin réussi à obtenir se fichu code SQL !!!!!!

Voici le résultat qui fonctionne parfaitement !


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
USE [master]
GO

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'ksl_63_en_cours')
DROP DATABASE [ksl_63_en_cours]
GO

USE [master]
GO

CREATE DATABASE [ksl_63_en_cours] ON PRIMARY
( NAME = N'ksl_63_en_cours', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\ksl_63_en_cours.mdf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'ksl_63_en_cours_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\ksl_63_en_cours_log.ldf' , SIZE = 84416KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

ALTER DATABASE [ksl_63_en_cours] SET COMPATIBILITY_LEVEL = 100
GO

IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [ksl_63_en_cours].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO

ALTER DATABASE [ksl_63_en_cours] SET ANSI_NULL_DEFAULT ON
GO

ALTER DATABASE [ksl_63_en_cours] SET ANSI_NULLS OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET ANSI_PADDING OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET ANSI_WARNINGS OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET ARITHABORT OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET AUTO_CLOSE OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET AUTO_CREATE_STATISTICS ON
GO

ALTER DATABASE [ksl_63_en_cours] SET AUTO_SHRINK OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET AUTO_UPDATE_STATISTICS ON
GO

ALTER DATABASE [ksl_63_en_cours] SET CURSOR_CLOSE_ON_COMMIT OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET CURSOR_DEFAULT GLOBAL
GO

ALTER DATABASE [ksl_63_en_cours] SET CONCAT_NULL_YIELDS_NULL OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET NUMERIC_ROUNDABORT OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET QUOTED_IDENTIFIER OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET RECURSIVE_TRIGGERS OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET DISABLE_BROKER
GO

ALTER DATABASE [ksl_63_en_cours] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET DATE_CORRELATION_OPTIMIZATION OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET TRUSTWORTHY OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET PARAMETERIZATION SIMPLE
GO

ALTER DATABASE [ksl_63_en_cours] SET READ_COMMITTED_SNAPSHOT OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET HONOR_BROKER_PRIORITY OFF
GO

ALTER DATABASE [ksl_63_en_cours] SET READ_WRITE
GO

ALTER DATABASE [ksl_63_en_cours] SET RECOVERY FULL
GO

ALTER DATABASE [ksl_63_en_cours] SET MULTI_USER
GO

ALTER DATABASE [ksl_63_en_cours] SET PAGE_VERIFY CHECKSUM
GO

ALTER DATABASE [ksl_63_en_cours] SET DB_CHAINING OFF
GO

exec sp_addrolemember 'db_owner', 'ksl_63_en_cours'
GO


Explication : Celui Erase ma table 'ksl_63_en_cours' et me la recrée "vierge". Quand nous faisons des tests sur des nouvelles versions, nous avons besoin de recrée une table vide à la main, alors qu'avec ce script tout est fait automatiquement !!!!
Je ne sais pas si je suis vraiment clair, je ne suis pas du tout bon en SQL mais je m'améliore !

J'ai même trouver un logiciel qui m'a traduit mon code SQL en ORACLE puis DB2 (sqlines-studio)


Merci à vous tous pour vos réponses !

Re: [Sript SQL + BD2]

Posté : 26 oct. 2016, 14:24
par moogli
ah wé, c'est un peu loin de la demande de départ ;)

relit le sujet et tu devrais t'en rendre compte.
Effectivement j'était a coté de ce que tu voulais.


Pense à cliquer sur le bouton résolus quand c'est le cas stp ;) (en haut à gauche du titre).

@+