Español
Foro

Firebird SQL RETURNING-Klausel

 

rquindt
¡Hola

Yo möchte en uno SQL Datenbank en el übergebenen Datensätzen automáticamente una Kunden-Nr vergeben dejar.
Das funktioniert soweit auch por Generator:

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

Wenn Yo ahora una Datensatz einfüge, möchte Yo gern esta Kunden-Nr zurück transferencia haben, así Yo ellos en un más Schritt nutzen kann. Das se laut Internet por "RETURNING" trabajo

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

Nur bekomme Yo el Ergebnis no en una variable.
Zu el ganzen Yo una DELPHI-Code gefunden,
bekomme el pero no en XPROFAN adaptado:

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

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

ShowMessage(IntToStr(NewID);
end;

Kann me como alguien helfen?
Vielen Dank en el vorraus.
 
02.04.2018  
 




H.Brill
Yo denke veces, du mußt auch una variable angeben, a el
el SQL-Befehl el generierten Inhalt el ersten Spalte KDNR
hin triggert.

Declariere veces una variable Valor%
y probiere lo veces así :
db("fbSQLExec",hdb&,"INSERT INTO ADRESSEN (NAME,VORNAME) \
VALUES ('Mustermann','Max')" + " RETURNING KDNR INTO :Valor%",1)

Stichpunkt : eingebettete Variables con Doppelpunkt.

In Valor% müßte entonces el Inhalt posición.
Auch tal vez veces a la String (wert$) probieren.

So Yo el veces Internet gelesen. Will me aber ahora
no wegen dieser una Sache una extra DB bauen.

Probiere lo sólo simplemente veces
 
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 geben el db(SQLExec/fbSQLExec/slSQLExec sólo el número el verarbeiteten Datensätze zurück.

Auf el FireBird-Página fehlt en RETURNING el ESQL-Kennung. Also hay en el eingebetteten Versión "fbembedded" el RETURNING auch no.
siehe:  [...] 
y:  [...] 

Also una Función bauen, el el Adresse aufnimmt y el Kundennummer zurück son.
Proc neue_Adresse

    Parámetros pName$, pVorname$
    Declarar hGrid&
    hGrid& = Crear("Grid",3,0)
    db("fbSQLExec", hdb&, "INSERT INTO ADRESSEN ( Name,Vorname ) VALUES ( :pName$, :pVorname$ )", 1)
    db("fbSQLExec", hdb&, "SELECT KdNr,Name,Vorname FROM ADRESSEN WHERE (Name = ':pName$') AND (Vorname = ':pVorname$')", hGrid&)
    ' El Werte puede entonces todos kontrolliert werden; benötigt se sólo el erste
    ' Im Grid landen no Überschriften, el Base es also Línea 0 y Spalte 0
    Volver Val( GetText $(hGrid&, 0,0) )

ENDPROC

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

Das bedeutet zwar zwei SQL-Befehle en el Datenbank loszulassen, aber dadurch dejar el Werte auch igual kontrollieren.

Ein weiterer Vorteil el Función: Meistens braucht uno para Kundennummern cierto Nummernkreise y Bereiche, el dafür nötige Bearbeitung puede ser hay con aufnehmen.

Das puede ser se entonces para Produkt-, Rechnungs- y otro Nummern abschauen y así kapseln.
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
04.04.2018  
 




rquindt
Gracias para el Tips.
Como lo häufig veces gleiche Namen y Vornamen oder sonstige Kombinationen son,
habe todos veces con nem Generator umgebaut.

Db("fbSQLExec",hdb&,"CREATE GENERATOR KDNR",1) '----- Generator para Daten-Satz Nr se producido -------
Db("fbSQLExec",hdb&,"SET GENERATOR KDNR TO 0",1) '----- KDNR = Daten-Satz-Nr, Valor startet con 0 ------

KdNr& = Datei_SatzNr( hdb& ) ' Nächste SatzNr ermitteln

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

End

'--------------------------------------------------------------------------------
Proc Datei_SatzNr

Parámetros hdb1&
Declarar hGrid&

hGrid& = Crear("Grid",3,0)

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

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

' Im Grid landen no Überschriften, el Base es also Línea 0 y Spalte 0

ENDPROC
 
08.04.2018  
 




Michael
W.
Sí, no bastante.
hGrid& = Crear("Grid",3,0)' <-- producido una Grid con 3 Spalten
' hier se de SELECT aber sólo 1 Valor generiert... (en el Ejemplo waren lo KdNr,Name,Vorname)
Db("fbSQLExec",hdb1&,"select gen_id(KDNR,1) from RDB$DATABASE",hGrid&)
Volver Val( GetText $(hGrid&, 0,0) )

Außerdem se en el meisten SELECT el gesamte Datenbank durchlaufen, lo sei porque uno grenzt el Búsqueda con uno WHERE-Klausel una.
Das gen_id() podría aber solch una Begrenzung en una Línea beinhalten.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.04.2018  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.422 Views

Untitledvor 0 min.
rquindt13.02.2024
Stringray05.01.2022
iF31.10.2020
Thomas Zielinski29.08.2019
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

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


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie