Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
engine:procedures:mi_getprocedureparameters [11.01.2016 ] |
engine:procedures:mi_getprocedureparameters [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== mi_GetProcedureParameters ===== | ||
+ | |||
+ | Liefert die Parameter einer Prozedur inkl. Informationen über den Datentyp zurück.\\ | ||
+ | |||
+ | Hinweise :\\ 1. Im Gegensatz zu [[dstoreproc>do_GetProcedureParameters_Ad]] werden zwar keine Default-Werte zurückgegeben, aber dafür ist dieses Ergebnis "verläßlich", d.h. die Angaben kommen aus den System-Tabellen der Datenbank selbst, so daß Fehler (wie in der Dokumentation) ausgeschlossen sind.\\ 2. Wenn es sich bei dem Benutzer, der diese Prozedur aufruft, um den "publicuser" handelt, wird überprüft, ob es sich beim angegebenen Prozedur-Namen (-> "ProcedureName") auch um eine "public"-Prozedur handelt (sonst gibt es den Fehler "-500"), d.h. der Name darf nicht auf "_Ad" enden oder mit "_" beginnen.\\ | ||
+ | |HTTP-Method|GET | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[mi Get Procedure Parameters]}}| | ||
+ | |Engine-Kategorie|miscellaneous | | ||
+ | |Engine-Typ|Daten-Ermittlung | | ||
+ | |Letzte Aktualisierung|7.0.4 (2014-03-19)| | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | |||
+ | ^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:engine_parameterconventions|Parameter-Konventionen engine/<Prozedur-Name>]])) ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |__ProcedureName__| |Name einer Prozedur, zu der die Parameter ermittelt werden sollen\\ |varchar(50)|4.0.0| | ||
+ | |ParameterName|NULL |Name eines Parameters der Prozedur "ProcedureName". Falls angegeben, wird nur der Datensatz zu diesem Parameter ausgegeben.\\ |varchar(50)|4.0.0| | ||
+ | |DatabaseName|NULL |Angeben, wenn "ProcedureName" in einer ANDEREN DB liegt (NICHT für "publicuser" erlaubt). Mögliche Werte :\\ * dstore\\ * dstoreifin\\ * dstoreifout\\ * dstoretempdb\\ * sybsystemprocs\\ * tempdb\\ |varchar(50)|6.5.2| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | === (parameterunabhängig) === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |//colid((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//|Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Spalte aus "syscolumns", die für Prozedur-Objekte angibt, um den wievielten Parameter es sich handelt.\\ |tinyint|4.0.0 | | ||
+ | |ParameterName|Name eines Parameters der Prozedur "ProcedureName"\\ |sysname|4.0.0 | | ||
+ | |Datatype|Daten-Typ des Parameters "ParameterName"\\ |sysname|4.0.0 | | ||
+ | |Length|Wieviel Byte können Werte, die für den Parameter "ParameterName" übergeben werden, maximal enthalten. Bei vielen Daten-Typen ist die Speicherbelegung immer so groß wie dieser Wert (bei numerischen Daten-Typen z.B.).\\ |tinyint|4.0.0 | | ||
+ | |PrecisionValue|Gilt nur für einige numerische Daten-Typen (z.B. "decimal") und gibt die maximale Anzahl Stellen an, die ein Wert für den Parameter "ParameterName" enthalten kann\\ |tinyint|4.0.0 | | ||
+ | |Scale|Gilt nur für einige numerische Daten-Typen (z.B. "decimal") und gibt die Genauigkeit, sprich die maximale Anzahl an Nachkomma-Stellen an, die ein Wert für den Parameter "ParameterName" enthalten kann\\ |tinyint|4.0.0 | | ||
+ | |IsOutputParameter|Handelt es sich bei dem Parameter "ParameterName" um einen Ausgabeparameter ("0" : Nein, "1" : Ja) ?\\ |bit|6.0.7 | | ||
+ | |||
+ | == Sortierung der Rückgabe == | ||
+ | |||
+ | (parameterunabängige Sortierung) | ||
+ | * colid (aufsteigend) | ||
+ | |||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-500|Falsche Parameter|nur direkt| | ||
+ | ==== XML-Schema ==== | ||
+ | |||
+ | Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://resources.dstore.de/xsd/webservice_SmartGate/Response/EngineProcedure_v1_0.xsd|Response/EngineProcedure_v1_0.xsd]] validiert. | ||
+ | ==== Historie ==== | ||
+ | |||
+ | |7.0.4 |2014-03-19|Kleine Kosmetik-Korrektur : Bei einigen Code-Zeilen war am Ende ein CR-Zeichen, was wir entfernt haben\\ | | ||
+ | |6.5.2 |2013-02-26|Neuer Parameter "DatabaseName"\\ | | ||
+ | |6.0.7 |2012-05-08|Neue Rückgabespalte "IsOutputParameter"\\ | | ||
+ | |6.0.4 |2011-10-21|1. Ab jetzt wird geprüft, ob "ProcedureName" auch tatsächlich eine existierende "stored procedure" ist\\ 2. Anpassungen an den aktuellen Quellcode-Standard\\ | | ||
+ | |6.0.2 |2011-06-08|"grant execute"-Statement ergänzt\\ | | ||
+ | |4.0.0 |2003-04-03|Erstmalig in dieser Version erstellt\\ | | ||
+ | |||
+ | ==== Code-Snippets ==== | ||
+ | |||
+ | == Engine Playground == | ||
+ | Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist: | ||
+ | * [[http://playground.dstore.de/index.php?proc=mi_GetProcedureParameters|mi_GetProcedureParameters im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetProcedureParameters?ProcedureName=<value>'</code>Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org)) formatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetProcedureParameters?ProcedureName=<value>' | xmllint --format -</code>== dStore_php == | ||
+ | <code php> | ||
+ | use dStore_php\WebService; | ||
+ | |||
+ | $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); | ||
+ | |||
+ | $request = new WebService\Requests\Engine\Procedure\Request( | ||
+ | new WebService\Requests\AccessData('default'), | ||
+ | 'mi_GetProcedureParameters', | ||
+ | array( | ||
+ | 'ProcedureName' => '<value>', | ||
+ | // 'ParameterName' => NULL, | ||
+ | // 'DatabaseName' => NULL | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | </code> | ||
+ | == engine/execute == | ||
+ | XML zur Ausführung mit der Methode [[:webservice:engine:execute|engine/execute]], z.B. per | ||
+ | curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <ListOfBatches> | ||
+ | <Batch No="0"> | ||
+ | <Procedure Name="mi_GetProcedureParameters"> | ||
+ | <Parameters> | ||
+ | <Parameter Name="ProcedureName"><!-- varchar value --></Parameter> | ||
+ | <!-- <Parameter Name="ParameterName">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="DatabaseName">NULL</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||