IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

ASSEMBLY et DLL


Sujet :

Développement SQL Server

  1. #1
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut ASSEMBLY et DLL
    Bonjour

    Je voudrais utiliser des expressions régulières avec SQL Server mais je ne trouve pas comment définir l'assembly, après avoir correctement généré le code dans Visual Studio.

    J'ai 2 DLL (SqlServerProject2.dll) dans mon projet :
    -- C:\Users\soutou\Documents\Visual Studio 2010\Projects\SqlServerProject2\SqlServerProject2\bin\Debug

    -- C:\Users\soutou\Documents\Visual Studio 2010\Projects\SqlServerProject2\SqlServerProject2\obj\Debug

    Je n'ai pas de rep. release comme
    l'indique : http://www.codeproject.com/Articles/...rver-2005-2008

    Le CREATE ASSEMBLY ... me dit que le fichier est interdit d'accès

    La création d'un assembly avec l'assistant que ce soit l'une ou l'autre de mes dll ne me permet pas d'utiliser une fonction d'expression régulière.

    Msg*4121, Niveau*16, État*1, Ligne*5
    Impossible de trouver la colonne "dbo" la fonction définie par l'utilisateur ou l'agrégat "dbo.RegexReplace". Le nom pourrait également être ambigu.

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Bonsoir Christian,
    As-tu essayé un déploiement via l'IHM de visual studio :
    Dans VS, Clique droit sur le projet > propriétés > et paramétrer les différents menu. menu "Application" jusqu'au menu "Déployer"
    J'ai montré un exemple ici
    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Salut Etienne et merci de ta réponse

    J'ai fait les prérequis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    EXEC sp_configure 'clr enabled', 1  
    RECONFIGURE WITH OVERRIDE  
    GO  
    ALTER DATABASE ...
    SET TRUSTWORTHY ON;  
    GO
    j'ai regardé les menus, je peux générer, nettoyer et regénérer le projet
    mais le déploiement échoue (message en bat à gauche de l'IHM) et rien
    dans la lise des erreurs.

    Je suis avec SQL Server 2012 RC et VS2010 Pro

  4. #4
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Peut être ma configuration ne permet pas ce déploiement automatique et manuel ?

    Il y a un rapport avec le debogage qui n'est pas permis avec ma conf ?
    Images attachées Images attachées  

  5. #5
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Je n'ai pas travaillé sur ces versions. Mais en cherchant un peu sur le net je pense qu'il est possible de déployer une fonction ou procédure écrite en VS 2010 vers SQL Server 2012.
    Lors du déploiement quelle est la version du Framework .NET que tu utilises ? 3.5 ou 4.0 ?
    Voici un article qui décrit étape par étape le déploiement avec VS 2010. Attention à la version du framework . NET !
    Etienne ZINZINDOHOUE
    Billets-Articles

  6. #6
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    J'ai essayé 3.5 et 4 même 3.0

    Dans l'article il y a

    If the database is not available, it will get created or you can choose an existing database if you want. After this step, this will ask you whether you want to enable SQL/CLR debugging. Click the ‘YES’ button.
    ça semble en rapport avec mon message d'erreur dans la copie d'écran de mon post précédent...

  7. #7
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Peux-tu testé le déploiement vers une base membre d'une instance de version < 2012 ? L'idée c'est de vérifier s'il y a un problème avec SQL 2012
    Etienne ZINZINDOHOUE
    Billets-Articles

  8. #8
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Avec une instance Express 2008 même problème!

    Il y a quelque chose que je dois mal configurer côté BD...

    En revanche sous VS je peux sélectionner "Autoriser le débogage SQL CLR".

  9. #9
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Dernière nouvelle : en sélectionnant le framework cible 3.5 au lieu de 4.0 par défaut, ça fonctionne !!

  10. #10
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Marrant ça; c'est bien que ça marche finalement.

    Si on lit la documentation des pré-requis pour SQL Server 2012 :

    NET 3.5 SP1 est requis pour SQL Server 2012 lorsque vous sélectionnez Moteur de base de données, Reporting Services, Réplication, Master Data Services, Data Quality Services ou SQL Server Management Studio, mais il n'est plus installé par le programme d'installation de SQL Server

    ...

    .NET 4.0 est un requis pour SQL Server 2012. SQL Server installe .NET 4.0 au cours de l'étape d'installation des fonctionnalités. SQL Server Express n'installe pas .NET 4.0 lors de l'installation sur le système d'exploitation Windows 2008 R2 SP1 Server Core. Vous devez installer .NET 4.0 avant d'installer SQL Server Express sur un système d'exploitation Windows 2008 R2 SP1 Server Core.
    Est-ce que tu as une édition Express de SQL Server 2012 ?

    @++

  11. #11
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    2012 qui pose problème :

    ------------------ ----------- --------------------------
    11.0.1750.32 CTP Express Edition (64-bit)


    2008 qui fonctionne :

    ------------------ ----------- --------------------------
    10.0.1600.22 RTM Express Edition

    Alors c'est la faute à qui ?

  12. #12
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Probablement que la CTP de SQL Server 2012 n'était pas parfaite à ce point de vue.

    Peux-tu essayer la RTM ?
    Si ça ne marche toujours pas, est que le CU1 met fin au problème ?

    @++

  13. #13
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Merci Nicolas

    J'ai installé la version Developer ,RTM et même problème de déploiement.

    Dans VS, le choix "Autoriser debogage SQL CLR" retourne l'erreur jointe.

    Le correctif que tu m'as indiqué concerne la version 2012 CTP d'Aout 2012 et donc je ne l'ai pas passé sur ma nouvelle version.
    Images attachées Images attachées  

  14. #14
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Merci de ton retour ...

    Dans VS, le choix "Autoriser debogage SQL CLR" retourne l'erreur jointe.
    Ben va ptêt falloir attendre VS 2012 ... c'est moche !

    Le correctif que tu m'as indiqué concerne la version 2012 CTP d'Aout 2012 et donc je ne l'ai pas passé sur ma nouvelle version.
    OK, désolé

    @++

  15. #15
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Ben va ptêt falloir attendre VS 2012 ... c'est moche !
    Je comprends cette logique d'attente ... attente d'une nouvelle version de VS. on peut continuer dans le même sens en disant côté SQL Server 2012, il pas de problème ! SQL Server 2012 c'est super ! c'est génial ! plein de nouvelles fonctionnalités !
    Le bon sens à mon avis c'est que si on peut déployer facilement une fonction CLR de VS 2012 vers SQL Server 2008 on ne devrait pas avoir de problème à réaliser la même opération sur SQL Server 2012. MS devrait rapidement apporter un correctif à SQL Server 2012 pour permettre de déployer des CLR VS2012 --> SQL Server 2012. Quand on est éditeur de SGBD et qu'on sort une nouvelle version on doit s'assurer de la NON REGRESSION des fonctionnalités !
    Etienne ZINZINDOHOUE
    Billets-Articles

  16. #16
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    C'est peut être moi qui ai omis une manip. initiale, je débute dans cet environnement...

    En général, plus l'erreur est grossière moins on la voit.

  17. #17
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    C'est possible d'avoir ton code CLR pour qu'on puisse tester ?

    ++

  18. #18
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Je l'ai récupéré via : http://justgeeks.blogspot.fr/2008/08...ex-to-sql.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using Microsoft.SqlServer.Server;
    using System.Text.RegularExpressions;
    using System.Text;
    public partial class ExpressionRegul
    {
        public static readonly RegexOptions Options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline;
        [SqlFunction]
        public static SqlBoolean RegexMatch(SqlChars input, SqlString pattern)
        {   Regex regex = new Regex(pattern.Value, Options);
            return regex.IsMatch(new string(input.Value));
        }
     
        [SqlFunction]
        public static SqlString RegexReplace(SqlString expression, SqlString pattern, SqlString replace)
        {
            if (expression.IsNull || pattern.IsNull || replace.IsNull)
                return SqlString.Null;
     
            Regex r = new Regex(pattern.ToString());
            return new SqlString(r.Replace(expression.ToString(), replace.ToString()));
        }
     
        // returns the matching string. Results are separated by 3rd parameter
        [SqlFunction]
        public static SqlString RegexSelectAll(SqlChars input, SqlString pattern, SqlString matchDelimiter)
        {
            Regex regex = new Regex(pattern.Value, Options);
            Match results = regex.Match(new string(input.Value));
     
            StringBuilder sb = new StringBuilder();
            while (results.Success)
            {
                sb.Append(results.Value);
     
                results = results.NextMatch();
     
                // separate the results with newline|newline
                if (results.Success)
                {
                    sb.Append(matchDelimiter.Value);
                }
            }
            return new SqlString(sb.ToString());
        }
     
        // returns the matching string
        // matchIndex is the zero-based index of the results. 0 for the 1st match, 1, for 2nd match, etc
        [SqlFunction]
        public static SqlString RegexSelectOne(SqlChars input, SqlString pattern, SqlInt32 matchIndex)
        {
            Regex regex = new Regex(pattern.Value, Options);
            Match results = regex.Match(new string(input.Value));
     
            string resultStr = "";
            int index = 0;
            while (results.Success)
            {
                if (index == matchIndex)
                {
                    resultStr = results.Value.ToString();
                }
     
                results = results.NextMatch();
                index++;
            }
            return new SqlString(resultStr);
        }
    };

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/10/2012, 15h32
  2. assembly vs dll et module
    Par duaner dans le forum C#
    Réponses: 2
    Dernier message: 08/10/2007, 15h16
  3. Include d'une DLL dans un jar via assembly
    Par ejl07 dans le forum Maven
    Réponses: 2
    Dernier message: 12/06/2007, 17h52
  4. création d'un assembly(dll)
    Par barhili04 dans le forum C#
    Réponses: 4
    Dernier message: 28/05/2007, 19h11
  5. Réponses: 4
    Dernier message: 23/04/2007, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo