Requêtes SQL
Un article de WikiSigPlus.
Sommaire |
[modifier]
introduction
- Des requêtes SQL peuvent être écris grace à un editeur interne (sigplus) à plusieurs endroit dans manifold attaché à une table par [File |Add|Rank Column non attaché par [File |Create |Query]
- Manifold a acces aux tables externes ( mysql, oracle) par CreateObjet
CreateObject() pour script vbscript et mysql CreateObject() pour script pyhton et mysql
[modifier]
editeur
- Une introduction des possibilités de l'éditeur de manifold existe (| sigplus)
[modifier]
syntaxe
PARAMETERS name type [(size)] , ..; SELECT/UPDATE set [col]= name WHERE [col]=
- la complétion démarre si espace devant le curseur puis clavier Ctr barre d espace ou à la premiere lettre a droite d'une expression.Celle ci ne se fait pas sur les noms des paramêtres.
- le name ne doit pas être un nom déja pris nom de colonne ou de table ou de fonction
- si plusieurs paramètres,ceux ci sont séparés par une virgule
- type doit s'écrire en se référant aux type supporté par manifold (manifold)
- un nom de colonne ou de table doit s écrire entre crocher ([])
- les apostrophes et les guillemets ne doivent pas être ajouter dans une requête paramétrée
- Le nom des colonnes peuvent être précédé du nom de la table en cas de requêtes sur plusieurs tables présent dans le projet.
[tablename].[colonnedetable]
[modifier]
debug
- IL n y a pas de debugage mais manifold nous alarme par
- --Unexpected token ( nom réservé mal orthographié, mot réservé mal placé )
- --Unknow column ( quand variable parmaétrés mal recopié)
- Si la requête est un SELECT , Query|Open Table peut retourné une table graphique
[modifier]
select action
- La langage SQL permet de sélection de créer ou modifier les données : Manifold parle d'action query dans le cas ou un select n'est pas utilisé.
- SELECT retourne une table
- Action comme un UPDATE SET permet de faire la même chose q'un script , selectionnner les données , les modifier( calcul) puis les ajouter à la même table attaché aux drawing.
[modifier]
Query/Rank Column
[modifier]
objet Query
- Queries est la représentation visuelle/editable de l'objet query accessible par script
- Une requête SQL s'applique sur une table attaché ou non à un drawing.
[Drawing] ou [Drawing Table] est possible
- La création qu'une requête SQL se fait par création d'un objet Queries (API).
[File|create|Query]![]()
- L'objet table retourné par Table donne accès en lecture aux colonnes du drawing.Une query ne retourne qu'une table pas un Drawing.
doc],doc
[modifier]
fonctions
- Les fonctions sont nombreuses et permettent de supporte la manipulation de données présents dans un drawing une surface une table ou encore une image. Ces fonctions sont abordées dans le chapitre des objects.
- IL faut savoir que l'objet query créer manuellement par l'utilisation e l interface visuel de manifold peut être accessible depuis un script ou bien créer directement au sein du script. cetet création entrainera l'apparition dans la fenêtre projet d'un objet query ayant pour nom celui defini dans le script.
- version select
- version select avec update
[modifier]
exemples
- Cette requête SQL retourne un tableau de toutes les colonnes contenu dans un drawing si la colonne de nom nombre contient la valeur 3.nombre est un int sinon on aurait mis des guillemets
selectionne select * from DrawingName where nombre = 3 ; selectionne select * from DrawingName where texcol ="3";
[modifier]
sql et script:paramètré
- Plutot que donner un exemple simple il va être abordé ici les liens entre un objet Script ( vbscript) et query( SQL).
- L'object query est accessible au sein d'un script à travers l'objet Query (API)et supporte le changement de la valeur du paramètre (API), (API)lors de l'éxécution.
[modifier]
fonctions
Ces fonctions sont définies dans le chapitre query de la documentation de manifold (doc auxquelless s'ajoutent les objets pour manipuler les paramêtres (doc,doc) IsValid()
- cette fonction permet de savoir si la chaîne SQL conteu dans l'objet query est valide bien écrite
Application.MessageBox(str(queryb.IsValid()),"valid")
- EditParameters()
- Cette fonction permet si query contient des paramêtres de définir manuellement ou de vérifier les valeurs des paramètres si valeurs affectés automatiquement.
Application.MessageBox(query.EditParameters(),"valid")
- ParameterSet
- Le passage des valeurs entre un script et une requête paramétrée se fait par ParameterSet.L'indice commence par 0 et représente le premier paramêtre apres PARAMETERS, l indice 1 représente deuxième paramêtre
query.ParameterSet(0).Value="texte"
[modifier]
exemples
Sub Main
Set doc = Application.ActiveDocument
Dim query
Set query=Components(Components.ItemByName("qp"))
'qp_string=PARAMETERS nombred Integer; select * from DrawingName where nombre = nombred ;"
query.ParameterSet(0).Value="1"
Application.MessageBox Cstr(query.QueryType) , "test"
Application.MessageBox Cstr(query.EDitParameters()) , "test"
query.Run()
End Sub

