Accueil > > > COBOL TO SQL
COBOL TO SQL
Information sur la source
Description
ce programme permet de convertir la descriptions des fichiers de données dans cobol vers le langage SQL afin de pouvoir charger directement les données de l'application Cobol dans une base de donnés SQL SERVER. Il faut noter que les données des fichiers dans cobol n'ont pas de délimiteur.
Source
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace SIC_SQL
- {
- public class Stype
- {
- private string entree { get; set; }
-
- private int valeur;
-
- public int Valeur
- {
- get
- {
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XX\.)").Groups[1].Success) { return 2; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XXX\.)").Groups[1].Success) { return 3; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC X\.)").Groups[1].Success) { return 1; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V99\.)").Groups[1].Success) { return 1; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V99\.)").Groups[1].Success) { return 2; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V9\.)").Groups[1].Success) { return 1; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V9\.)").Groups[1].Success) { return 2; }
- else
- {
- try
- {
- return int.Parse(System.Text.RegularExpressions.Regex.Match(entree, @"\(([^)]*)\)").Groups[1].Value.ToString());
- }
- catch (Exception)
- {
-
- return 0;
- }
- }
- }
- set { valeur = value; }
- }
-
- private int mantisse;
-
- public int Mantisse
- {
- get
- {
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V99\.)").Groups[1].Success) { return 2; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V99\.)").Groups[1].Success) { return 2; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V9\.)").Groups[1].Success) { return 1; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V9\.)").Groups[1].Success) { return 1; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V99\.)").Groups[1].Success) { return 2; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9\.)").Groups[1].Success) { return 1; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9(3).)").Groups[1].Success) { return 3; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9(4).)").Groups[1].Success) { return 4; }
- else
- {
- try
- {
- return int.Parse(System.Text.RegularExpressions.Regex.Match(entree, @"V9\(([^)]*)\)\.").Groups[1].Value.ToString());
- }
- catch
- {
- return 0;
- }
- }
- }
- set { mantisse = value; }
- }
-
- public string get_numeric()
- {
-
- switch (Valeur)
- {
- case 1: { return "tinyint"; }
- case 2: { return "smallint"; }
- case 3: { return "int"; }
- case 4: { return "int"; }
- case 5: { return "bigint"; }
- case 6: { return "bigint"; }
- case 7: { return "bigint"; }
- case 8: { return "bigint"; }
- default: { return "numeric(" + Valeur + ")"; }
-
- }
- }
- public int getTotal()
- {
- return Valeur + Mantisse;
- }
-
- private string Get_Type()
- {
-
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+X\()").Groups[1].Success) { return "varchar(" + Valeur + ")"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V99\.)").Groups[1].Success) { return "numeric(1,2)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V99\.)").Groups[1].Success) { return "numeric(2,2)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V9\.)").Groups[1].Success) { return "numeric(1,1)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V9\.)").Groups[1].Success) { return "numeric(2,1)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V99\.)").Groups[1].Success) { return "numeric(" + Valeur + ",2)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9\.)").Groups[1].Success) { return "numeric(" + Valeur + ",1)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)\.)").Groups[1].Success) { return get_numeric(); }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9\(\d+\)\.)").Groups[1].Success) { return "numeric(" + Valeur + "," + Mantisse + ")"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XX\.)").Groups[1].Success) { return "varchar(2)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XXX\.)").Groups[1].Success) { return "varchar(3)"; }
- if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC X\.)").Groups[1].Success) { return "varchar(1)"; }
- else
- {
- return "";
- }
-
- }
- public string SQLType()
- {
- string _type = Get_Type();
- if (_type == "numeric(3,4)") { return "float(7)"; }
- else return _type;
- }
-
- public Stype(string val_entree)
- {
- entree = val_entree;
- }
-
- public Stype()
- {
- // TODO: Complete member initialization
- }
-
- }
- }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SIC_SQL
{
public class Stype
{
private string entree { get; set; }
private int valeur;
public int Valeur
{
get
{
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XX\.)").Groups[1].Success) { return 2; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XXX\.)").Groups[1].Success) { return 3; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC X\.)").Groups[1].Success) { return 1; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V99\.)").Groups[1].Success) { return 1; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V99\.)").Groups[1].Success) { return 2; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V9\.)").Groups[1].Success) { return 1; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V9\.)").Groups[1].Success) { return 2; }
else
{
try
{
return int.Parse(System.Text.RegularExpressions.Regex.Match(entree, @"\(([^)]*)\)").Groups[1].Value.ToString());
}
catch (Exception)
{
return 0;
}
}
}
set { valeur = value; }
}
private int mantisse;
public int Mantisse
{
get
{
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V99\.)").Groups[1].Success) { return 2; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V99\.)").Groups[1].Success) { return 2; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V9\.)").Groups[1].Success) { return 1; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V9\.)").Groups[1].Success) { return 1; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V99\.)").Groups[1].Success) { return 2; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9\.)").Groups[1].Success) { return 1; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9(3).)").Groups[1].Success) { return 3; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9(4).)").Groups[1].Success) { return 4; }
else
{
try
{
return int.Parse(System.Text.RegularExpressions.Regex.Match(entree, @"V9\(([^)]*)\)\.").Groups[1].Value.ToString());
}
catch
{
return 0;
}
}
}
set { mantisse = value; }
}
public string get_numeric()
{
switch (Valeur)
{
case 1: { return "tinyint"; }
case 2: { return "smallint"; }
case 3: { return "int"; }
case 4: { return "int"; }
case 5: { return "bigint"; }
case 6: { return "bigint"; }
case 7: { return "bigint"; }
case 8: { return "bigint"; }
default: { return "numeric(" + Valeur + ")"; }
}
}
public int getTotal()
{
return Valeur + Mantisse;
}
private string Get_Type()
{
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+X\()").Groups[1].Success) { return "varchar(" + Valeur + ")"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V99\.)").Groups[1].Success) { return "numeric(1,2)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V99\.)").Groups[1].Success) { return "numeric(2,2)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9V9\.)").Groups[1].Success) { return "numeric(1,1)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*99V9\.)").Groups[1].Success) { return "numeric(2,1)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V99\.)").Groups[1].Success) { return "numeric(" + Valeur + ",2)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9\.)").Groups[1].Success) { return "numeric(" + Valeur + ",1)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)\.)").Groups[1].Success) { return get_numeric(); }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC\s+[Ss]*9\(\d+\)V9\(\d+\)\.)").Groups[1].Success) { return "numeric(" + Valeur + "," + Mantisse + ")"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XX\.)").Groups[1].Success) { return "varchar(2)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC XXX\.)").Groups[1].Success) { return "varchar(3)"; }
if (System.Text.RegularExpressions.Regex.Match(entree, @"(PIC X\.)").Groups[1].Success) { return "varchar(1)"; }
else
{
return "";
}
}
public string SQLType()
{
string _type = Get_Type();
if (_type == "numeric(3,4)") { return "float(7)"; }
else return _type;
}
public Stype(string val_entree)
{
entree = val_entree;
}
public Stype()
{
// TODO: Complete member initialization
}
}
}
Conclusion
ce programme m'a permis de charger les données qui se trouvaient dans notre DPS7000 dans SQL SERVER en respectant la dentition des données, leur type et leur taille.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
[debutant]progressBar [ par maxvador ]
Salut à tous,Voila ce que je dois faire:J'ai une class graphic (herité de form) et une autre class qui fait un traitement SQL assez long. Je voudrais
Filtre sur une association en linq to sql [ par SharpMao ]
Salut à vous tous,J'ai un petit problème en linq to sql.J'ai deux tables qui sont reliées, A->B. Mais en plus de l'association sur la clé primaire,
Linq to sql [ par laymouna98 ]
salutj'ai fait un pteit exemple avec linq et sql servermaintenent je veut bien changer la base de données au lieu de sql server en oracleest ce que je
Linq To Sql [ par 24 ans ]
Salut tous le mondeJ ai un petit soucis qui est le suivant :Probleme de fusion de deux Table en une seul table linqvoici le code que j ai ecrit:Dal d1
LINQ to SQL / ENTITIES [ par Kikuts ]
Bonjour ! Alors voilà je suis en train de monter un Web Service pour que mes composants silverlight (xaml) puissent être "binder" ou bien récupérer de
LINQ TO - type retour données [ par Kikuts ]
Bonjour à vous amis développeurs ! Je suis en train de créer un service web. Dans ce service, j'y code des requêtes LINQ. Avant de poser ma question
modification dans un datagrid en utilisant linq to sql [ par jihedines ]
Bonjour à tous, j'utilise le datagrid pour afficher les données à l'aide de linq to sql sauf ke g un pb au niveau de la modification ,j'arrive pas à m
Linq to Sql, problème de maj avec paramètre [ par Achm ]
Bonjour ! J'ai un petit souci pour mettre à jours mes données : J'ai une fonction : [code=cs]public void UpdateData(Guid id, string nom) {
ADO.NET, Linq to SQL, entity framework ? Que choisir? je m'y perds, besoin d'explications... [ par Mgiv64 ]
Bonjour à tous, Je développe occasionnellement en C# depuis quelques années. Jusqu'à présent je n'avais pas beaucoup besoin d'avoir recours à des ba
linq to sql [ par casa_sniper ]
Bonjour j'ai un probleme concernnant l'access via linq to sql je dois alimenter une gridview par plusieurs tables (utilisateurs ,profil ,magasin)qui
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|