| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Shell Befehl ? Geht das ? (2683 mal gelesen)
|
Peter K Mitglied Konstrukteur/Sysadmin
 
 Beiträge: 318 Registriert: 08.01.2002 WINDOWS 7 (64bit), AIP2013, Productstream Professional Pro 2011, EdgeCAM 2011R2<P>2x INTEL XEON E5646, 16GB RAM, RAID 0, PNY FX 4000 DELL M6400 Vista64 RAID0 8Gb FX3700m
|
erstellt am: 19. Mai. 2003 10:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Compass User, Es passiert einfach mal, dass man sich im Feuer des Gefechts für was Falsches entscheidet und bemerkt es später, dass da eigentlich was anderes reichen muss. Somit suche ich nach einer schnellen Möglichkeit bei dem angelegten und freigegebenen Dokumenten das Material auszutauschen. Geht das vielleicht mit Shell ?? Wenn ja, wie lautet der Befehl ?? Gruss Peter K
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 19. Mai. 2003 11:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
Hallo Peter, ACHTUNG!!! BEFEHLE DIESER ART SIND MIT ÄUSSERSTER VORSICHT ANZUWENDEN!!! Da kann es sehr schnell passieren, dass eine RIESENSAUEREI dabei raus kommt, schneller, als man so manchem CompassUser zutrauen möchte. Ich sage das hier ganz bewusst betont und ganz am Anfang des Beitrages!!! Der Befehl, den du brauchts, ist für das jeweilige Dokument aufzurufen und sieht wie folgt aus: ___XDWCMD(UPDATE DOCUMENT SET MATERIAL='neuerWert' WHERE AIMKEY=#AIMKEY); Nach der Eingabe mit F5 die Daten aktualisieren. neuerWert ist dann beim aktuellen Dokument als Material eingetragen. Erklärung des Befehls: Hier wird einfach ein T-SQL-Skript an die Datenbank gesendet, Compass-Ausdrücke werden zuvor substituiert). A C H T U N G ! ! ! Ich sage es nochmals: dieser Befehl ist bedenkenlos anwendbar. Wer ihn aber nicht 1000%ig versteht, sollte auf keinen Fall damit rumspielen!!! Da ich das hier von mir gegeben habe, akzeptiere ich keine Beschwerden, falls sich irgendwer seine Datenbank zerstört!!! (Nur als Beispiel: wird der obige Befehl ohne das WHERE und dem nachfolgenden Text eingegeben, ist der neue Wert bei ALLEN Dokumenten eingetragen!) Ciao, WolfgangE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Motzi Mitglied Anwendungsprogrammierer
 
 Beiträge: 298 Registriert: 16.06.2002 COMPASS Liebhaber, auch wenn es PSP heisst COMPASS Entwickler. 5x Windows 2003 Server, SQL 2005 AIP2009, SolidWorks 2009, EPLAN P8, Cadenas, Autodesk Productstream Professional 2009 pro, inforCOM 7.1 (ERP) d.3 DMS System
|
erstellt am: 19. Mai. 2003 18:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
Hallo Peter, es gibt auch noch einen 2. Weg, der aber auch nicht ungefährlicher ist. Mit dem Shell Befehl ___ChangeField MATERIAL=<neues Material> kann man die Änderung durchführen, wenn man direkt auf dem Dokument ist. Bitte beachte aber, das eine Manipulation der Daten durch Shell Befehle auch zu einer inkosistenten Datenbank und/oder zu Datenverlust führen kann. Eine Liste der Shell Befehle mit Funktion findet man in der Entwickler Dokumentation. Ich rate aber davon ab Shell Befehle zu verwenden, wenn man nicht genau weis was man tut. Solche Dinge erfährt man in der COMPASS pro Autorisierungsschulung oder in der Programmierschulung bei AIMsystems. Sehr zu empfehlen, wenn man in die Materie weiter einsteigen will. ------------------ Gruß Motzi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 20. Mai. 2003 07:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
Hallo Motzi, hallo Peter, das mit dem ___ChangeField ist als solches richtig, funktioniert aber nicht bei schreibgeschützten Daten, wie z.B. freigegebenen Dokumenten. ___ChangeField berücksichtigt nämlich die aktuellen Schreibrechte. Deshalb muss die Änderungen direkt an der Datenbank erfolgen. Mit ___XDWCMD() wird eine SQL-Anweisung direkt auf die Datenbank abgesetzt, deshalb ist die Änderung bei schreibgeschützten Daten nur auf diese Weise möglich. Ciao, WolfgangE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WPiatkowski Mitglied ApplikationEngineer
 
 Beiträge: 192 Registriert: 18.10.2002 AT 286, EGA-Karte, 640KB RAM, 51/4" Floppy, 10MB Festplatte
|
erstellt am: 21. Mai. 2003 12:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
|
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 21. Mai. 2003 13:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
Hallo Waldemar, Das ist mir neu. So viel ich weiß, war ___ChangeField schon immer rechtegebunden, zumindest seit Compass 2.0. Der Fall wäre aber nur noch aus reinem Interesse zu klären, will hier auf keine Fall eine große Diskussion entfachen, hauptsache, bei Peter funktioniert's. Ciao, WolfgangE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WPiatkowski Mitglied ApplikationEngineer
 
 Beiträge: 192 Registriert: 18.10.2002 AT 286, EGA-Karte, 640KB RAM, 51/4" Floppy, 10MB Festplatte
|
erstellt am: 21. Mai. 2003 14:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
Hallo Wolfgang, ich möchte mich dem anschliessen: >>> BEFEHLE DIESER ART SIND MIT ÄUSSERSTER VORSICHT ANZUWENDEN!!!<<< . Es geht aber auch mit ___Changefield wenn man vorher das Feld RIGHTS auf bestimmte Werte setzt ( aus Sicherheitsgründen werde ich diese Werte nicht veröffentlichen). Ähnliches Thema wurde hier schon behandelt: http://ww3.cad.de/foren/ubb/Forum120/HTML/000134.shtml Gruß W. Piatkowski [Diese Nachricht wurde von WPiatkowski am 21. Mai 2003 editiert.]
[Diese Nachricht wurde von WPiatkowski am 21. Mai 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
   
 Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 21. Mai. 2003 14:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter K
Hallo Waldemar, auch hier gibt es eine Einschränkung: um die Rechte am Datensatz zu ändern, braucht der Benutzer die Access-Rights (in der Konfiguration +A). Diese Rechte hat im Standard zunächst nur die Gruppe ADMINISTRATORS. Hast der Benutzer diese Rechte nicht, muss er erst recht wieder mit ___XDWCMD() dran, womit wir wieder am Anfang wären. Ciao, WolfgangE P.S.: Ja, das Shell-Fenster ist in der Regel auch nur für Adminstratoren verfügbar, aber über eine Compass-Variable kann das Shell-Fenster für jeden Benutzer freigegeben werden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter K Mitglied Konstrukteur/Sysadmin
 
 Beiträge: 318 Registriert: 08.01.2002 WINDOWS 7 (64bit), AIP2013, Productstream Professional Pro 2011, EdgeCAM 2011R2<P>2x INTEL XEON E5646, 16GB RAM, RAID 0, PNY FX 4000 DELL M6400 Vista64 RAID0 8Gb FX3700m
|
erstellt am: 22. Mai. 2003 15:26 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |