Entwickler-Ecke
Datenbanken - SP, fast klar
D. Annies - Mo 19.12.05 21:04
Titel: SP, fast klar
Hi, Delpher,
na, den Rüffel von gestern habe ich ernst genommen und - in ca. 2,5 min eine Stored Procedure in Interbase erstellt. Sie stellt in einer Tabelle den längsten Namen fest und hat als Ausgabeparameter die Variable :Max_Name.
Nun meine Probleme:
1. Wie kann ich den Prozedurnamen von NEW_PROCEDURE verändern?
2. Wie kann ich im Delphi-Code den Ausgabeparameter z. B. in einem Label ausgeben?
Danke für eure Hilfe, sagt
Detlef Annies
UGrohne - Mo 19.12.05 21:28
Den Prozedurnamen kann man normalerweise nicht ändern, dazu müsste man an die Systemtabelle, würde ich Dir aber nicht empfehlen. Gib Dir den Meta-Text von der Prozedur, ändere den Namen dort, lösche die alte und erzeuge die SP neu. Ist einfacher und sicherer.
Zu Deiner zweiten Frage: FastgGenauso, wie Du Daten aus Tabellen abfragst:
SELECT * FROM prozedur([Parameter1],[Parameter2]); in einem Query verwenden, dann kannst Du auf die einzelnen Felder zugreifen.
D. Annies - Mo 19.12.05 22:10
Danke für deine Antwort, Uwe!
Detlef
D. Annies - Di 20.12.05 20:43
Hi Delpher,
Leider komme ich mit der Antwort nicht zurecht:
"Gib Dir den Meta-Text von der Prozedur, ändere den Namen dort, lösche die alte und erzeuge die SP neu."
Kann man das noch genauer ausdrücken?
Gruß,
Detlef
hansa - Di 20.12.05 20:58
Kann man zwar etwas genauer sagen, aber nicht viel genauer. :mrgreen: Lösche die SP und lege sie mit richtigem Namen neu an.
Und an die Werte drankommen ? Mit Select.
D. Annies - Di 20.12.05 21:13
Danke für eure Geduld, aber genau das will mir nicht gelingen: als Namen der Prozedur z. Bleistift Max_Len_Name vergeben. :oops:
Gruß,
Detlef A.
UGrohne - Di 20.12.05 21:36
D. Annies hat folgendes geschrieben: |
Danke für eure Geduld, aber genau das will mir nicht gelingen: als Namen der Prozedur z. Bleistift Max_Len_Name vergeben. :oops:
Gruß,
Detlef A. |
Arbeitest Du mit IBExpert?
hansa - Di 20.12.05 21:58
Wird er ja hoffentlich und dann : Procedure auswählen -> Drop Procedure und neu anlegen. Parameter usw. und fertig.
D. Annies - Di 20.12.05 23:02
Hallo Hansa,
es ist zum Verzweifeln:
Ich lösche die Prozedur (drop), wähle aus neue Prozedur und der Text CREATE PROCEDURE NEW_PROCEDURE wird vorgegeben und ich kann ihn nicht ändern!
Heute ist doch nicht der erste April!!!!
Gruß, Detlef :evil:
hansa - Mi 21.12.05 01:22
D. Annies hat folgendes geschrieben: |
Heute ist doch nicht der erste April!!!! |
Sieht aber fast so aus. :lol: Warte eben den 2. ab. 8)
UGrohne - Mi 21.12.05 01:25
D. Annies hat folgendes geschrieben: |
Hallo Hansa,
es ist zum Verzweifeln:
Ich lösche die Prozedur (drop), wähle aus neue Prozedur und der Text CREATE PROCEDURE NEW_PROCEDURE wird vorgegeben und ich kann ihn nicht ändern!
Heute ist doch nicht der erste April!!!!
Gruß, Detlef :evil: |
Hast Du Dir die neueste Version von IBExpert geholt? Hast Du auch bevor Du die SP mit einem Klick auf den Blitz (*g*) erzeugt hast auch den Namen geändert?
D. Annies - Mi 21.12.05 09:11
Hi, UWE,
danke erstmal für deine Geduld. Ja, ich habe die neueste IB-Version.
Ist es richtig, dass ich im Menüpunkt DDL die Proc umbenennen kann?
(Scheint mir so)
Aber wenn ich dann compiliere, - es steht auch etwas von ALTERING PROCEDURE
NEW_PROCEDURE da) hat die Proc wieder ihren Namen NEW_PROCEDURE !(???)
PS. Ist heute schon der zweite April?
Gruß und Frust,
Detlef
OlliWausD - Mi 21.12.05 14:18
tag Annis,
du änderst den Namen der SP nicht in dem Reiter DLL, sondern im Quellcode für die SP.
Dort wo du deinen Quelltext reintippst, gibt es oben (links neben den Blitz) die Schaltfläche "Lazy mode On/OFF".
Drück mal da drauf, und du hast den gesamten (reinen) Quellcode der SP vor dir, und nicht das Gui.
Dort geht alles
mfg
OlliW
D. Annies - Mi 21.12.05 15:52
Hi, Oli :beer: w_aus_d!!
Nun, das war ja eine Freude, deine Nachricht!
DAS war es, was ich nicht wusste!!
Nun ist es wieder ein Kinderspiel.
Herzlichen Dank für dein Interesse und dein genaues Hinsehen, was es denn wohl in meinem Fall noch sein konnte!
Schöne Grüße nach Bamberg aus Lübeck, :wave:
Detlef Annies
OlliWausD - Mi 21.12.05 17:19
gern geschehen
mfg
OlliW
UGrohne - Mi 21.12.05 18:42
Aber in dem Fenster, das Du normalerweise beim Erstellen einer neuen Prozedur vor Dir hast, hast Du auch rechts oben in der Menüleiste den Namen der Prozedur. Dort dürfte er sich auch ändern lassen, dann brauchst Du nicht in den "Expert"-Modus gehen ;-)
Ich dachte, genau da lasse sich der Name nicht ändern, das wäre nämlich sehr komisch.
hansa - Mi 21.12.05 20:51
Wir reden aneinader vorbei. Es geht darum, ob die SP bereits erzeugt ist oder gerade neu erzeugt wird. Direkt beim Neuanlegen kann man oben rechts den Namen ändern. Da braucht man nicht selber den Quelltext verändern. Drückt man aber den Blitz und hat die Prozedur somit bereits erzeugt, dann ist es zu spät. Der Name läßt sich dann so einfach nicht mehr ändern. Wird wohl an der IB-Sprachdefinition liegen, sonst ginge das sicherlich auch in IBExpert. Also bleibt nichts anderes übrig, als DROP und neu erzeugen.
Und das ist manchmal wegen Abhängigkeiten eventuell gar nicht möglich. Und da auch IBExpert kaum wissen kann, wo und von was die SP gebraucht wird, kann man sie eben nicht ändern, wenn sie mal erzeugt wurde. Als letzten Ausweg in solchen Fällen könnte man aber trotzdem noch was machen : Metadaten extrahieren (eventuell auch mit Daten) und die DB selber löschen. Dann das erzeugte SQL-Script durchgehen und den SP-Name überall ändern. Compilieren und die Daten wieder importieren.
D. Annies - Do 22.12.05 08:49
Danke für eure "Nachsorge", Uwe und Hansa,
auch dieses Vorgehen werde ich mir mal ansehen.
Gruß,
Detlef
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!