Français
Forum

Firebird SQL RETURNING-Klausel

 

rquindt
allô

je voudrais dans einer SQL banque de données chez den übergebenen Datensätzen automatisch une Kunden-Nr vergeben laisser.
cela funktioniert soweit aussi per Generator:

Db("fbSQLExec", hdb&, "CREATE TABLE ADRESSEN \
( KDNR Integer generated by Default as identity (start With 0) primary clé Not NULL,\
NAME CHAR(30),\
VORNAME CHAR(30))",1)

si je maintenant une Datensatz einfüge, voudrais je gern cet Kunden-Nr zurück transfert avons, avec cela je vous dans einem weiteren Schritt nutzen peux. cela soll le son Internet per "RETURNING" marcher

db("fbSQLExec",hdb&,"INSERT INTO ADRESSEN (NAME,VORNAME) \
VALUES ('Mustermann','Max')" + " RETURNING KDNR",1)

seulement bekomme je cela Ergebnis pas dans une variable.
trop dem ganzen habe je une DELPHI-Code trouvé,
bekomme den mais pas dans XPROFAN angepasst:

with DBank.IBC_Anschrift do
begin
Close;
SQL.Clear;
SQL.Ajouter('INSERT INTO anschrift (AUFTRAG, Name_1, Name_2)');
SQL.Ajouter('VALUES (''87777'', ''Schulze'', ''Nummer 2'')');
SQL.Ajouter('RETURNING ID');

ExecSQL;
NewID:= DBank.IBC_Anschrift.ParamByName('RET_ID').Value;

ShowMessage(IntToStr(NewID);
end;

peux mir là quelqu'un aider?
Vielen Dank im vorraus.
 
02.04.2018  
 




H.Brill
je denke la fois, tu dois aussi une variable angeben, à qui
qui SQL-Befehl den generierten le contenu qui ersten Spalte KDNR
hin triggert.

Declariere la fois une variable Wert%
et probiere es la fois so :
db("fbSQLExec",hdb&,"INSERT INTO ADRESSEN (NAME,VORNAME) \
VALUES ('Forgeron','Max')" + " RETURNING KDNR INTO :Wert%",1)

Stichpunkt : eingebettete Variablen avec Doppelpunkt.

dans Wert% devrait ensuite qui le contenu stehen.
aussi peut-être la fois une String (wert$) essayer.

So habe je cela la fois im Internet gelesen. veux mir mais maintenant
pas à cause de cette une l'affaire une extra DB construire.

Probiere es arrêt simple la fois
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
03.04.2018  
 




Michael
W.
Meines Wissens donner qui db(SQLExec/fbSQLExec/slSQLExec seulement le nombre qui verarbeiteten Datensätze zurück.

sur qui FireBird-page fehlt chez RETURNING qui ESQL-Kennung. alors gibt es dans qui eingebetteten Version "fbembedded" cela RETURNING aussi pas.
siehe:  [...] 
et:  [...] 

alors une Funktion construire, qui qui Adresse aufnimmt et qui Kundennummer zurück gibt.
Proc neue_Adresse

    Paramètres pName$, pVorname$
    Déclarer hGrid&
    hGrid& = Créer("Grid",3,0)
    db("fbSQLExec", hdb&, "INSERT INTO ADRESSEN ( nom,prénom ) VALUES ( :pName$, :pVorname$ )", 1)
    db("fbSQLExec", hdb&, "SELECT KdNr,nom,prénom FROM ADRESSEN WHERE (nom = ':pName$') AND (prénom = ':pVorname$')", hGrid&)
    ' qui Werte peut ensuite alle kontrolliert werden; nécessaire wird seulement qui erste
    ' Im Grid landen aucun Überschriften, qui la base ist alors la ligne 0 et Spalte 0
    Retour Val( GetText $(hGrid&, 0,0) )

ENDPROC

KdNr& = neue_Adresse( "Mustermann", "Max" )

cela bedeutet zwar deux SQL-Befehle sur qui banque de données loszulassen, mais dadurch laisser sich qui Werte aussi juste vérifier.

un weiterer Vorteil qui Funktion: la plus part du temps braucht on pour Kundennummern bestimmte Nummernkreise et Bereiche, qui pour nötige Bearbeitung peux on là avec aufnehmen.

cela peux on sich ensuite pour Produkt-, Rechnungs- et autre Nummern abschauen et so kapseln.
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
04.04.2018  
 




rquindt
merci pour qui Tips.
là es häufig la fois gleiche Namen et Vornamen ou bien sonstige Kombinationen gibt,
habe cela ganze la fois avec nem Generator umgebaut.

Db("fbSQLExec",hdb&,"CREATE GENERATOR KDNR",1) '----- Generator pour données-phrase Nr wird erzeugt -------
Db("fbSQLExec",hdb&,"SET GENERATOR KDNR TO 0",1) '----- KDNR = données-phrase-Nr, Wert startet avec 0 ------

KdNr& = Datei_SatzNr( hdb& ) ' prochain SatzNr ermitteln

db("fbSQLExec",hdb&,"INSERT INTO ADRESSEN (KDNR,NAME,VORNAME) \
VALUES (:KdNr&,'Mustermann','Max')",1)

Fin

»--------------------------------------------------------------------------------
Proc Datei_SatzNr

Paramètres hdb1&
Déclarer hGrid&

hGrid& = Créer("Grid",3,0)

Db("fbSQLExec",hdb1&,"select gen_id(KDNR,1) à partir de RDB$DATABASE",hGrid&)

Retour Val( GetText$(hGrid&, 0,0) )

' Im Grid landen aucun Überschriften, qui la base ist alors la ligne 0 et Spalte 0

ENDPROC
 
08.04.2018  
 




Michael
W.
oui, pas entier.
hGrid& = Créer("Grid",3,0)' <-- erzeugt un Grid avec 3 Spalten
' ici wird de SELECT mais seulement 1 Wert generiert... (im Beispiel étions es KdNr,nom,prénom)
Db("fbSQLExec",hdb1&,"select gen_id(KDNR,1) à partir de RDB$DATABASE",hGrid&)
Retour Val( GetText $(hGrid&, 0,0) )

Aussi wird dans den meisten SELECT qui gesamte banque de données durchlaufen, es sei car on grenzt qui cherche avec einer WHERE-Klausel un.
cela gen_id() pourrait mais solch une Begrenzung sur une la ligne beinhalten.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.04.2018  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.599 Views

Untitledvor 0 min.
rquindt13.02.2024
Stringray05.01.2022
iF31.10.2020
Thomas Zielinski29.08.2019
plus...

Themeninformationen

cet Thema hat 3 participant:

rquindt (2x)
Michael W. (2x)
H.Brill (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie