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 :

connection a mssql..


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Points : 26
    Points
    26
    Par défaut connection a mssql..
    bonjour,
    sur un serveur windows2003 avec mssql
    j'utilise la commande
    osql -u sa -P -S nomduserveur\totobase
    ca me renvoie:
    1)
    normal.

    Je liste les bases de donnees presentes, il m'en trouve 4 (base1,base2,base3,MASTER)mais il ne trouve pas totobase..de plus la base de donnee en cours est MASTER et pas totobase(vous allez me dire normal elle est pas dans la liste mais alors pourquoi j'ai pu me connecter ???!!!).
    j'effectue une requete:
    SELECT * FROM eleve
    il me dit qu'il trouve pas eleve.
    J'y comprends pas grand chose , d'autant plus qu'en passsant par du php/mysql avec du odbc (depuis un autre poste) ca marche tres bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $dsn="base2000";
    $username="sa";
    $password="";
     
    $cnx=odbc_connect($dsn,$username,$password);
     $valeur= odbc_exec( $cnx, "select * from eleve" );
    boucle while
    close $cnx
    -----------------------------------------
    je me suis dis je fais essayer avec:
    osql ... -S nomduserveur\base2000..
    et la message d'erreur connection introuvable..
    Il doit il y avoir un problem de nom DSN ou odbc...ca doit pas eter bien compliqué..mais je trouve pas la synthaxe...
    sinon quelle est la synthax pour se connecter à une autre base que MASTER (je crois uqe c celle du system, donc ca ne m'interresse surtout pas..)


    le but est de generer un batch pour excexuter une requete au lieu de la lancer a partir de easyphp (embetant de demarrer easyphp seulement pour excecuter une requete). j'ai voulu passer directement par le serveur (mssql) avec un batch qui me lance la requete et me la fait sortir dans un fichier texte avec la commande osql....-i c:\fichietext.txt.
    merci de m'aider..

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    sous osql, pour naviguer entre les bases, il faut utiliser la commande USE <base> (à condition que ton login ait les droits d'accès à cette base). En passant, il faut mettre un mot de passe sur le login 'sa', c'est un trou de sécurité facile à utiliser...

    osql -Usa -P -S....
    1> use base
    2> go
    3> --lance ta requete
    Emmanuel T.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    merci pour ta reponse mais je voudrais me connecter a la base directement a partir de la commande osql.(je pensais que le \ derrrier le nom du serveur correspondait au nom de la base mais non).
    Le but est de generer un batch qui m'execute une requete quotidienement et automatiquement (scheduler) pour extraire le resutlat d'une requete dans un fichier texte..j'ai la requete (qui marche a travers du php), les mots de passe mais je ne trouve pas le batch ou la ligne de commande pour faire ce qui est cité 2 lignes au dessus.
    je vasi essayer avec un batch dy style

    osql....
    use mabase
    lance ma requete
    extrait la dans un fichier texte
    ferme la connection.

    ou peut etre avec une redirection

    osql ... > use >...>...close



    il faut de nouveau que je cours a travers le web pour trouver la synthax pour faire tout ca...c bien compliqué pour lancer une simple requete avec une ligne de commande.

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Utilise l'option -d de osql pour spécifier le contexte de la base de données.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    merci beaucoup...je n'avais pas vu l'option dans le osql /?..
    il me sort bien le resultat dans un fichier texte mais c'est inexploitable...c-a-d qu'il n'y a pas de separateur de champ distinct ou il insere des sauts de lignes sur le premier champ ce qui me decale tout...

    j'ai essayé avec les options -s ";" -n -h ...malheureusement le -O ne fonctionne plus meme si il figure dans l'aide :
    http://technet.microsoft.com/fr-fr/l.../ms162806.aspx
    (cf remarque).
    je vais me rabattre vers du php+mysql et odbc_connect pour generer mon fichier texte mais apparement il faut specifier champ par champ (dans une boucle ) les specifications du fichier de sortie..avec plus de 90 champs ca va pas etre triste.

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Utilise BCP. Pour te simplifier la vie : BCP Helper.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    je ne comprends pas a quoi sert le champ Data File dans BCP...je me connect bien a ma base, je clik sur query-out..je mets une requete de base dans le champ vide qui s'ouvre (select *from eleveet puis je pensais qu'il aller me genrerer un fichier en sortie mais il me demande un data File..
    voila ce que genere le prog (build):;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select * from eleve" QUERYOUT "c:\2.txt" -SADMSERVER\OMTUDCal -U"sa" -P"" -o"C:\1.txt" -m10 -n -r\n -t; -a32764 -q
    ..
    j'ai colle un fichier 2.txt ds data File...les fichiers 1 et 2 .txt st presnets ala racine de mon pc...

    je suis revenu en mode command line de osql et voila ma ligne de commande:
    osql -S ADMSERVER\OMTUDCal -U sa -P -i c:\test.sql -o c:\output.txt -d udcal -r"\n" -s";" -n -w 65000 -h

    c'est presque bon en sortie sauf qu'il m'a inseré une ligne entre les en-tetes et le premier row...le 65000 c'est pour eviter qu'il me fasse des sauts de lignes qd bon lui semble..je pensais qu'il n'en ferait qu'en changeant d'enregistrement (-r"\n")...bref,,ca galere et ca bidouille sec..je vais peut eter me mettre au "regular expression" pour corriger les erreurs de mise en page..je deconne j'en ai marre..

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par t8024328
    je ne comprends pas a quoi sert le champ Data File dans BCP...je me connect bien a ma base, je clik sur query-out..je mets une requete de base dans le champ vide qui s'ouvre (select *from eleveet puis je pensais qu'il aller me genrerer un fichier en sortie mais il me demande un data File..
    voila ce que genere le prog (build):;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select * from eleve" QUERYOUT "c:\2.txt" -SADMSERVER\OMTUDCal -U"sa" -P"" -o"C:\1.txt" -m10 -n -r\n -t; -a32764 -q
    ..
    j'ai colle un fichier 2.txt ds data File...les fichiers 1 et 2 .txt st presnets ala racine de mon pc...j'abandonne bcp mais a l'air pour qui le maitrise...j'en ai besoin qu'une seule je vais pas me lancer ds l'aprofondissement de ce prog.

    je suis revenu en mode command line de osql et voila ma ligne de commande:
    osql -S ADMSERVER\OMTUDCal -U sa -P -i c:\test.sql -o c:\output.txt -d udcal -r"\n" -s";" -n -w 65000 -h

    c'est presque bon en sortie sauf qu'il m'a inseré une ligne entre les en-tetes et le premier row...le 65000 c'est pour eviter qu'il me fasse des sauts de lignes qd bon lui semble..je pensais qu'il n'en ferait qu'en changeant d'enregistrement (-r"\n").(double quote ou pas..je sais pas)..bref,,ca galere et ca bidouille sec..je vais peut eter me mettre au "regular expression" pour corriger les erreurs de mise en page..je deconne j'en ai marre..
    ..
    10 mn plus tard....c'est bon le fichier est plat (1 ligne par enregistrement et pas de sauts de lignes entre deux champs), il suffit que j'enleve la ligne de tiret a la main(entre la 1er et la 2eme ligne ) et ca devrait marcher...

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    comme dit auparavant, B C P !! La solution pour sortir des données d'une table sans se prendre la tête.

    sinon sous osql
    pour enlever la ligne des tirets : "-h-1" au lieu de -h.

    Mais vu ta requête, la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp "select * from eleve" QUERYOUT "c:\2.txt" -SADMSERVER\OMTUDCal -U"sa" -P"" C:\1.txt  -c -r\n -t; -a32764 -q
    aurait pu le faire.
    Emmanuel T.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    ma requete faisait 40 lignes..j'en ai mis une simple comme exemple pour avour un e reponse simple..apres je l'applique a ma requete..c vrai que bcp a l'air simple mais a quoi sert le champ data file dans bcp (j'ai mis 2.txt pour lui faire plaisir..c'est debile mais j'ai essaye pour voir)...les donnees viennent de ma requete alors je mets quoi ds le champ data file de BCP ????..
    sur osql je n'ai pas trouve bcp d'aide sur les options de la ligne de commande mes recherche du style "osql command line" ou "osql switch option" ne m'ont jamais renvoyées vers des sites pertinents...en general ces pbl de synthaxe on les regles en 5mn mais la...pour bcp la meme chose, il aurait mieux fait de l'appeler xxsqw ca aurait ete mieux referencer et plus simple a trouver...mais c'est un auter discours..merci qd meme a tous..si quelqu'un veux continuer de m'aider pour savoir quoi mettre ds bcp et ou...je n'ai que 2 choses a mettre :ma requete ou le nom du fichier qui la contient et le nom de mon fichier de sortie , le reste ce sont des parameters, je devrais m'en sortir..merci

    sinon j'essaierai osql avec la ligne de commande et l'option -h-1 pour enlever la ligne de tirets...j'aurais bien voulu comprendre BCP

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bcp est un simple utilitaire sql server.
    J'imagine que tu lances bcp depuis une fenêtre CMD ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bcp "select * from eleve" QUERYOUT "c:\2.txt" -SADMSERVER\OMTUDCal -U"sa" -P"" C:\1.txt  -c -r"\r\n" -t;
    cette commande sort ta requête dans 1.TXT avec un saut de ligne de type \r\n (pour windows) et sépare les colonnes par un ;

    si tu dois sortir une table complète, sans filtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp <base>..eleve out "c:\2.txt" -SADMSERVER\OMTUDCal -U"sa" -P"" C:\1.txt  -c -r"\r\n" -t;
    sinon tu peux créer une vue correspondante à ta requête dans l'analyseur de requête

    use <base>
    go
    create view vue_bcp
    as
    select ......

    une fois créée, tu lances la commande bcp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bcp <base>..vue_bcp out "c:\2.txt" -SADMSERVER\OMTUDCal -U"sa" -P"" C:\1.txt  -c -r"\r\n" -t;
    mais tu parles de paramètres, de fichiers de requêtes en entrée. Il faut dire dès le début et précisement ce que tu veux faire.
    On avancera bcp plus vite ...
    Emmanuel T.

Discussions similaires

  1. [SQL-Server] la différence entre connection via MsSQL et via ODBC pour PHP ?
    Par realsomar dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/09/2010, 00h22
  2. [ODBC] Connection pour MSSQL qui ne renvoie pas de données
    Par Jabbal'H dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/07/2007, 17h10
  3. Probleme pour se connecter a MSSQL 2000 a disance
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/12/2006, 10h34
  4. [PEAR][DB] Impossible de me connecter à une base mssql
    Par VincenzoR dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/07/2006, 08h35
  5. connection a mssql a partir d'une page php
    Par jean_marc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/11/2003, 14h24

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