AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Generatoren auf tabellenwert setzen
Thema durchsuchen
Ansicht
Themen-Optionen

Generatoren auf tabellenwert setzen

Ein Thema von Walter Landwehr · begonnen am 26. Mär 2019 · letzter Beitrag vom 27. Mär 2019
Antwort Antwort
Seite 1 von 2  1 2      
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#1

Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 14:58
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBO
Hallo, gibt es eine Möglichkeit alle Generatoren auf den Tabellenwert zu setzen. Hat jemand einen Lösungsvorschlag?
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 15:04
Was meinst Du mit Tabellenwert?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 15:16
So etwas wie DBCC CHECKIDENT <table> RESEED beim SQL Server?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 15:18
vielleicht:
SET GENERATOR generator-name TO <new-value>
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 15:20
oder
Code:
ALTER SEQUENCE <SequenceName> RESTART WITH <NewValue>;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#6

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 15:33
Für jede zu "verarbeitende" Tabelle / jeden Generator in einem Script eine Zeile dieser Art einbauen:

select 'SET GENERATOR GEN_Generatorname TO '||Max(Generatorspalte) + 1||'; commit;as SQL from tabelle;

Das Ergebnis nehmen und ausführen.

Das kann man sicherlich auch in eine Prozedur packen und die dort erstellten SQLs dann per EXECUTE STATEMENT ausführen.

Sowas in der (ungetesteten) Art:
SQL-Code:
CREATE PROCEDURE PR_Generator_Update AS
declare v_SQL VarChar(4000);
begin
  select 'SET GENERATOR GEN_Generatorname_1 TO '||Max(Generatorspalte) + 1 from tabelle_1 into :v_SQL;
  EXECUTE STATEMENT v_SQL;
  select 'SET GENERATOR GEN_Generatorname_2 TO '||Max(Generatorspalte) + 1 from tabelle_2 into :v_SQL;
  EXECUTE STATEMENT v_SQL;
  ...
  commit;
end^
Aufrufen könnte man das dann mit

exceute procedure PR_Generator_Update;

Man muss dann halt die Prozedure pflegen und neue Tabellen hinzufügen bzw. alte entfernen.
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 15:42
Danke für die schnellen antworten. Sorry der Tabellenwert ist die Generator ID.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 16:11
Hallo,
Zitat:
Hallo, gibt es eine Möglichkeit alle Generatoren auf den Tabellenwert zu setzen. Hat jemand einen Lösungsvorschlag?
Ich habe es nicht verstanden.
Was konkret willst du machen.
Bitte mal ein kurzes Beispiel.
Heiko
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#9

AW: Generatoren auf tabellenwert setzen

  Alt 26. Mär 2019, 17:28
Meine man kann den Generator nicht mit select from .. auf einen Wert setzen. Hat zumindest bei mir nicht funktioniert, vielleicht habe ich aber auch was falsch gemacht. Auch 'Set generator gen_xy to :p wollte er nicht machen.

Im Programm kann man aber folgendes machen:

Delphi-Quellcode:
  ibcsql.sql.add('set generator gen_xy to '+inttostr(neuwert);
  ibcsql.execute;
In der Art könnte man das auch als STP machen, lohnt den Aufwand aber nicht unbedingt. Es geht natürlich nur jeder Generator einzelnd, wüsste jetzt nicht wie man das anders lösen könnte.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.465 Beiträge
 
Delphi 12 Athens
 
#10

AW: Generatoren auf tabellenwert setzen

  Alt 27. Mär 2019, 10:29
Meine man kann den Generator nicht mit select from .. auf einen Wert setzen.
Kann man schon, z.B. auf den Wert der aktuell größten ID einer Tabelle:
Code:
select gen_id(g_xyz, (select max(id) from t_xyz) - gen_id(g_xyz, 0)) from rdb$database;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz