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

MS SQL Server Discussion :

Erreur avec ISQL


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Erreur avec ISQL
    Bonjour,

    j'ai créé un batch qui doit se conneter à la base , executer un script qui se trouve dans un fichier.sql, et storcke le resultat dans un fichier text, jusqu'ici tout va bien.

    malheureseument, je retrouve ce message dans mon fichier de sortie :

    Msg 4004, Level 16, State 1, Server BCNSSQL021\REC, Line 1
    Unicode data in a Unicode-only collation or ntext data cannot be sent
    to clients using DB-Library (such as ISQL) or ODBC version 3.7 or
    earlier.


    quelqu'un peut m'expliquer d'ou vient l'erreur ? et comment la résoudre

  2. #2
    Membre actif
    Inscrit en
    Février 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 185
    Points : 224
    Points
    224
    Par défaut
    Salut,

    2 solutions


    1- Change la ou les les colonnes de ta requete qui ont un type ntext par le type text
    2- Caste la ou les colonnes de ta requete de type ntext
    exple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select CAST(colonne AS TEXT) from table

  3. #3
    Invité
    Invité(e)
    Par défaut
    Non non, le message est clair, DB-library utilisé par isql.exe ne peut pas répondre à ton besoin. C'est le type de connexion qui était utilisé avec SQL Server 6.5 si ma mémoire est bonne. L'outil isql.exe est là pour la compatibilité.

    Utilisez plutôt osql.exe, ou si vous êtes sous SQL Server 2005, utilisez sqlcmd.exe.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par kuzco Voir le message
    Non non, le message est clair, DB-library utilisé par isql.exe ne peut pas répondre à ton besoin. C'est le type de connexion qui était utilisé avec SQL Server 6.5 si ma mémoire est bonne. L'outil isql.exe est là pour la compatibilité.

    Utilisez plutôt osql.exe, ou si vous êtes sous SQL Server 2005, utilisez sqlcmd.exe.

    salut
    merci Osql marche parfaitement

    j'ai une autre question si tu permet, dans ma procedure je fais un count selon certain condition ensuite si ce count est > 0 je fais un select.

    pour l'instant dans mon fichier je retouve la valeur retourné par le count et le select.

    or je veux avoir que cette derniere, comment je fais stp

    merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Exposez votre code, nous y verrons plus clair.

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Bonjour merci
    je vais vous dire au début je lance un fichier batch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\Osql.exe" /S BCNSSQL021\REC_GIE  /d ContratCadreTEST /U haplus /P oxalys /i C:\csv\Fichier_in.sql  /o C:\csv\Fichier_out.txt  /n /b
    le fichier out est celui ou je récupere le résultat


    vouci le code du Fichier_in avec le quel je lance la proc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    declare @CODE_RETOUR VARCHAR(250)
    DECLARE @RESULT varchar(255)
     
    exec @CODE_RETOUR = dbo.CC_Update2 @RESULT OUTPUT
     
    if (@CODE_RETOUR is not null and @CODE_RETOUR !=0)
      PRINT 'ERREUR '+convert(varchar,@CODE_RETOUR)
     
    else
      PRINT 'SUCCES du lancement de la procedure ='  +  convert(varchar,@CODE_RETOUR)  
      /*** je dois intriduire des commande pour lancer quick mail*/   
     
    go
    voici ma procédure stoquée

    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
    ALTER     procedure dbo.CC_Update2
     
    @RESULT varchar(255) OUTPUT
    AS 
     
     
    declare @CODE_RETOUR varchar (255)
     
    set @CODE_RETOUR = 'select count(*) from CONTRAT_CADRE where condition '
    EXEC(@CODE_RETOUR)
     
    if (@@rowcount > 0)  
     
    BEGIN
     
    set @RESULT = 'select  top 5 Num2_contra from CONTRAT_CADRE where conditio'
     
    EXEC(@RESULT)
     
    END

    leproblème je retrouve dans mon fichier_out le resultat du count et du select

    or je en cherche que ce dernier

    et je ne sais plus comment lancer mon qmail, parce que faut que j'envoie un mail

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

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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