Salut Tous le monde
Voila je cherche à lister les disques, dossiers et sous dossiers d'un serveur SQL dans un treeview
Salut Tous le monde
Voila je cherche à lister les disques, dossiers et sous dossiers d'un serveur SQL dans un treeview
Serveur SQL ?
Tu parles Microsoft SQL Server ?
ou tu confonds juste avec un Microsoft Server, un OS équivalent à WinXP, Vista, Seven, 8, ces derniers étant les "WorkStation" des versions Serveurs 2003, 2008 R1, 2008 R2 et 2012
Si simple Serveur, utilise FindFirst\FindNext, tu as plein d'exemple partout
Sinon, utililse le ShellTreeView, il existe de nombreuses variantes de ce composant déjà prévu à cet effet
Si Serveur SQL, il faut oublier la notion de fichier et plutôt évoquer DataBase et Table !
je vous donne + de détail
j'ai un server distant ou j'ai installé microsoft sql server
je veux lister les disques répértoire et sou répértoire de ce server
Je ne vois pas le rapport entre SQL Server et lister les fichiers\dossiers !
As-tu des problèmes de droits ? les fichiers SQL Server étant peut-être protégé ?
As-tu regarder FindFirst\FindNext : Comment lister les fichiers d'un répertoire ?
Je veux lister que les répertoires pas leurs fichiers, mon bute dans tous ça c’est d’avoir la possibilité de choisir le chemin distant à la création de ma base de données sql server
L'Exemple de la FAQ sur FindFirst fait explicitement un filtre sur '*.*' en remplaçant cela en '*' et en gérant l'attribut faDirectory, il est facile d'obtenir la liste des Répertoires !
Si tu veux une fenêtre de selection de répertoire, utilise la fonction SelectDirectory ou une action TBrowseForFolder
Voir ce sujet Séléctionner un Dossier, on y explique de nombreuses approches différentes !
Création ?
Je ne connais pas SQL Server, tu veux founir le nom de fichier à unADOX.Catalog
SQL Server ne fourni-t-il pas d'équivalent à CREATE SCHEMA ou CREATE DATABASE ?
Sinon, sur un poste Client, on utilise plutôt un alias ODBC pour acceder en TCP\IP à un poste contenant SQL Server avec identification\authentication...
Je dirais même qu'un accès au fichier de SQL Server via un Partage Windows ou via c$ est une faille de sécurité !
Peu d'administrateur réseau ou DB accepteront cela !
Pour ne pas tourner en rond je veux faire comme sql server à la création de la base de données
Ou il nous donne une fenêtre pour choisir le chemin du *.log et de *.mdf
Deux TButtonedEdit
Chacun un OnRightButtonClick avec un appel à un TOpenDialog en spécifiant selon le contexte la propriété Filter puis appel à
TOpenDialog.Execute
Voir aussi TDirectoryListBox, TDriveComboBox , TFileListBox
Ce type d'écran de sélection (celui-là, je ne le connais pas) est ultra-basique, tu as tout plein de façon de le faire, à toi de choisir l'aspect qui te convient le mieux, tu n'es pas obligé d'avoir exactement le même aspect que dans SQL Server mais juste un comportement similaire !
Si tu veux EXACTEMENT l'écran de SQL Server, faudrait nous fournir un ScreenShot pour te conseiller les Contrôles nécessaires !
excuse moi mais je pense que vous n'avais pas compri ma question,
clairement je veux afficher dans un treeview larborescence du disque dur d'un pc distant executant sql server
Hmmmm, Shail a parfaitement compris ta demande, je pense que sais plutôt toi qui au départ était vraiment pas claire...
Bref, pour lister un disque
FAQ
PS : Dans la FAQ, la variable "chemin" pourrais donc être un disque ou autre lieu de départ...
As-toi d'adapter pour lire à un endroit donné.
Et tu n'as clairement pas compris la réponse.
Comment comptes-tu générer et récupérer cette arborescence ? En SQL
A part avoir un utilitaire qui au démarrage et à coup de FindFirst/FindNext remplisse un DB, je ne vois pas trop...
Et même une fois fait, comment sauras-tu que l'utilisateur SQL Server aura les droits en écriture sur ce dossier ?
Et qui dit que ces fichiers sont stockés sur le même disque que le serveur ?
Et...
Et...
lister les dossiers et sous dossiers d'un poste réseau
Bonjour,@ShaiLeTroll vous a donné les éléments pour atteindre ce but...
vous pouvez également consulter la FAQ de delphi relative à la gestion des fichiers et répertoires ICI
Utilise un TTreeView et fait tes propres fonctions de remplissage avec FindFirst FindNext
si tu évoque un "pc distant" c'est que tu veux l'affichant dans un "poste client"
Pense qu'en réseau, on ne voit que ce qui est fourni par un partageC$ est un partage disponible mais qu'un admin va retirer pour éviter justement la manipulation que tu souhaites faire
tu devrais utiliser un masque genre \\Serveur\partage\* et cela j'ignore comment réagit FindFirst\FindNext pour cela étudie l'API sous-jacente FindFirstFile dont la documentation faite justement référence à
Envoyé par MSDN
As-tu ne serais-ce étudier le TDirectoryListBox un peu vieillo mais fonctionne très bien sur un "lecteur réseau" connecté sur un dossier partagé du serveur,
La technique de connecté un "lecteur réseau" est un peu moche, un classique pour les habitués du BDE avec Paradox ou ACCESS
"\\Server\Share" ne doit pas être possible avec TDirectoryListBox, faut tout de même le tenter pour voir
N'ayant pas expérimenté le TShellTreeView, j'ignore ses capacités réseau
Il te faut maintenant tester les différentes solutions proposées ... je t'ai indiqué tout ce que je savais, il faut te lancer !
Sa problématique est qu'il veut lister les répertoires d'un serveur distant sans dossier partagé, à partir d'un autre poste.
Je pense qu'il faut une application sur le serveur avec laquelle tu communiques. Tu ne pourras pas l'avoir directement à partir du poste distant.
Il n'a pas précisé qu'il voulait le faire SANS partage !
Si on en arrive à telle manipulation, un serveur DataSnap par exemple pour faire une sorte de Remote File Explorer
Mais c'est un autre sujet, le projet Ulysse codé en Delphi doit proposer ce genre de fonctionnalité !
Sans Partage ? les boules il va être tout seul...
Bref,
ISLAM1980, tu ne peux pas avoir la liste des répertoires d'un poste distant via l'explorer du poste client, si le poste distant ne partage pas le lecteur désiré...
Où alors tu le fais carrément autrement, sur chaque poste tu mets la même application qui scrute l'ensemble des dossiers de son propre lecteur, tout ceci mis en un fichier texte, dans un lieu où tous les postes on accès.
Ensuite depuis n'importe quel poste tu pourra lire ce ou ces fichiers provenant des poste du réseau.
Il veut préciser le chemin pour la création de la base de données.
Son chemin doit être du type:
et non
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 C:\MSSQL\Data\
C'est pour cela que je disais sans partage. Pour éviter un paramétrage de correspondance entre le chemin partagée et le chemin réel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 \\MonServeur\MonPartage\
Ce qui est donc impossible depuis un poste client, puisque l'on peut au mieux avoir
Code dir : Sélectionner tout - Visualiser dans une fenêtre à part \\MonServeur\C$\MSSQL\Data\
D'où la création d'une application serveur accessible depuis le client comme un WebService par exemple
LINKIN m'a bien compris c'est ce que je veux
Vous rappelant que j'ai un compte sql server au niveau du sever et j'ai trouvé quelque requêtes me permettant de lister les dossiers tous niveaux confondus
exemple:
EXEC master.sys.xp_dirtree 'C:\program files'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager