SVP,SVP
comment executer les scripte sql server par programmation sans utilise les fichier bat
merci a l'avance
SVP,SVP
comment executer les scripte sql server par programmation sans utilise les fichier bat
merci a l'avance
Il me semble que les composants ZEOS doivent en contenir un qui gère les scripts
BONSOIR,
merci pour la réponce,
voila ce que j'ai fait avec delphi
le fichier 'SCRIPTE.sql' s’exécute normal avec SQL serveur mais quand j’exécute avec Delphi il affiche pas mal d’erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.Button1Click(Sender: TObject); begin ZSQLProcessor1.Clear; ZSQLProcessor1.LoadFromFile(ExtractFilePath(ParamStr(0) )+ 'SCRIPTE.sql'); ZSQLProcessor1.Execute; end;
remarque scripte.SQL création de base de donne
Je ne connais pas Zeos, en général se connecter sur un serveur de DB sans indiquer le nom de la base de données n'est pas apprécié ou n'est pas le plus facile à configurer !
ZSQLProcessor utilise un objet Connection, comment l'as-tu configuré ?
Certains utilisent l'OLE 'ADOX.Catalog'
Avec UniDac, le TUniScript permet de faire le CREATE DATABASE très simplement
j'utilise aussi les composants de DEVART, et avec le composant pour les SCRIPTS, la connexion à la base (ou une création) se réalise à partir du script lui-même comme l'indique ShaiLeTroll.
Pourquoi cela ne serait-il pas pareil avec ZEOS ?
pourquoi ne pas allez voir le forum et les FAQ du site de ZEOS?
Bonjour
Merci a touts pour les réponses
Les composants de devart (ctad, UniDac ….) ces des composant payable, je veux un composant Delphi gratuit, et qui exécute un scripte SQL sans connecté a une base de donnée
Merci a la avance
SVP
Il me manque que cette tache (composant qui exécute les SQL scripte indépendant des bases) pour terminer mon logiciel, j’ai utilisé les fichiers bat mais ces moches comme méthode, et sa fait longtemps que je cherche sur le net, sa me rend malade
Je ne connais que ZEOS qui soit gratuit.
mais avez-vous vérifier l'aide de zeos, les exemples (s'il y en a)?
et pourquoi ne pas demander de l'aide au forum ZEOS ?
Pour créer une database on ne peux pas utiliser un script . Ce qui en soit est tout a fait logique , comment executer un sql sur une BDD inexistante ?
Le script pourra être utiliser pour créer les tables , insérer les données etc ..
avec ZEOS il faut utiliser le TZConnexion pour créer la Database
PS . Ne pas utiliser le CharSet UTF8 avec les composants ZEOS et Firebird , les bugs ne sont toujours pas résolu .Envoyé par ZEOS Forum
bonjour
j'ai executer votre code et voila ce qui me donne comme erreur
none of the dynamic libraries can be found ;fbclient15.dll,fbclient.DLL
MERCI
Parce qu'il aurait peut être fallu indiquer de quel type de SGBD il s'agissait .
L'exemple indiqué était pour Firebird comme indiqué dans le texte .
Un peu d'effort de conversion !! ou de recherche internet sur le ZEOS Forumpas aux bons endroits je pense !Envoyé par Romila
il est évident qu'il faut changer le protocole , je ne connais pas le nom pour celui recherché , mais si un TZConnexion fonctionne il est pas difficile de savoir le nom exact non ?
OK merci
D'accord , méa culpa , a ma décharge , j'étais de mauvais poil et surtout je n'avais lu que la 'partie ZEOS' .Euh, dans le 1er sujet, c'est écrit
Et si tu nus disais de quelles erreur il s'agit...
Pour exécuter un script SQL sur SQL Serveur, tu n'as pas besoin de composant particulier. Tu ouvres une connexion sur le serveur (je le fait en OLEDB, mais ADO va très bien pour ça).
Si tu veux créer une nouvelle base de données, il te suffit d'ouvrir la connexion sur la base master. (et fait attention à ce que le script contienne bien une instruction, après le
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part use newdatabase
sinon tu vas créer les objets de ta base dans master...)
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part CREATE DATABASE
Ensuite tu exécutes ton script comme une commande SQL ordinaire...
La seule chose qui va te préoccuper, c'est si ton script SQL contient des GO. Pour une création de base de données, tu dois sans doute en avoir un certain nombre...
Les GO sont des marqueurs à l'intérieur du script pour séparer les batch à exécuter. Il ne s'agit pas d'instruction SQL, donc tu ne peux pas demander à SQL Server de les exécuter.
Il faut obligatoirement éclater ton script sur chaque GO et l'exécuter petit bout par petit bout en séquence.
Autrement dit, tu charges le script dans une StringList (appelons la Script). Puis tu prépares une deuxième liste destinée à recevoir les commandes à exécuter (appelons la SQL).
Pour chaque ligne de Script, tu testes s'il s'agit d'un GO.
Si la ligne n'est pas un GO, tu l'ajoutes à la fin de SQL.
Si la ligne est un GO, tu exécutes SQL comme une commande SQL ordinaire, puis tu vides SQL.
A la fin de la boucle sur Script, il ne faut pas oublier d'exécuter les dernières lignes contenues dans SQL qui n'ont pas encore été exécutées.
Fait attention également, si tu as deux GO consécutifs, tu peux te retrouver à essayer d'exécuter SQL alors que la liste est vide... SQL Server n'aime pas les batchs vides, il va faire une erreur. Dans ce cas, il faut faire le test avant et ne pas exécuter le batch s'il est vide.
Sur la connexion ADO, tu as un événement OnInfoMessage. Si tu gères l'événement, tu pourras récupérer les messages d'informations tel que les PRINT qui remontent pendant l'exécution du script.
Maintenant si tu veux vraiment utiliser un composant pour exécuter le script, SQL Server fournit deux API : SQLDMO et SMO.
SQLDMO est une librairie d'objets COM. Il te suffira d'instancier un objet SQLServer, puis tu as une méthode ExecuteWithResultsAndMessages2 pour exécuter un script SQL en récupérant les messages d'information.
Le problème c'est que SQLDMO est une API obsolète. Elle n'est plus installée à partir de SQL Server 2005 et est remplacée par SMO.
Et SMO de son côté est une API .NET, donc plus difficilement utilisable en Win32...
Moi, j'exécute mes scripts SQL avec la première méthode que j'ai donnée. Je crée les nouvelles bases de données, j'installe également les mises à jour de structure à chaque nouvelle version de l'appli.
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