Hallo,
<p>ich habe eine IB(6 Dialect 3) Tabelle die einen Primärschlüsselwert über Trigger (BEFORE INSERT POSITION 0) mit Hilfe eines Generators bekommt.</p>
<pre>
IF (NEW.DESCRIPTION_ID IS NULL) THEN
NEW.DESCRIPTION_ID = GEN_ID(GEN_TDESCRIPTION_ID,1);</pre>
<p>
Jetzt ist mir aufgefallen das der Generator immer noch auf Null steht, obwohl der Inkrementelle PK korrekt erhöht wird.
</p>
<p>
Der DB Zugriff erfolgt über IBX 5,04; TIBDataSet; TIBGeneratorApplyEvent = (gamOnPost);</p>
<p>
Die Inkrementierung verhält sich wie (Select max(ID) from Table + 1), lösche ich einen Wert wird der nächste Wert der des Vorgängers.</p>
<p>
Interessanterweise verwende ich die gleiche TIBDataSet Einstellung auch mit anderen Tabellen (gleicher Aufbau) und dort wird der Generator korrekt Inkrementiert.</p>
<p>Anzahl der Generatoren ist 17</p>
<b>DFM</b>
<pre>
object Description: TIBDataSet
Database = IBDB
Transaction = IBTA
ForcedRefresh = True
AfterDelete = CommitAfterDelete
AfterPost = CommitAfterPost
OnDeleteError = OnDeleteError
OnNewRecord = DescriptionNewRecord
OnPostError = OnPostError
OnUpdateError = OnUpdateError
BufferChunks = 1000
CachedUpdates = False
DeleteSQL.Strings = (
'delete from "TDESCRIPTION"'
'where'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"OLD_DESCRIPTION_ID"')
InsertSQL.Strings = (
'insert into "TDESCRIPTION"'
' ("TDESCRIPTION"."DESCRIPTION_ID", "TDESCRIPTION"."PARENT", '
'"TDESCRIPTION"."FOLDER", '
' "TDESCRIPTION"."DESCRIPTION", "TDESCRIPTION"."SHOW_IN_WEB")'
'values'
' (:"DESCRIPTION_ID", :"PARENT", :"FOLDER", :"DESCRIPTION", '
':"SHOW_IN_WEB")')
RefreshSQL.Strings = (
'Select '
' "TDESCRIPTION"."DESCRIPTION_ID",'
' "TDESCRIPTION"."PARENT",'
' "TDESCRIPTION"."FOLDER",'
' "TDESCRIPTION"."DESCRIPTION",'
' "TDESCRIPTION"."SHOW_IN_WEB"'
'from "TDESCRIPTION" '
'where'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"DESCRIPTION_ID"')
SelectSQL.Strings = (
'select * from "TDESCRIPTION"')
ModifySQL.Strings = (
'update "TDESCRIPTION"'
'set'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"DESCRIPTION_ID",'
' "TDESCRIPTION"."PARENT" = :"PARENT",'
' "TDESCRIPTION"."FOLDER" = :"FOLDER",'
' "TDESCRIPTION"."DESCRIPTION" = :"DESCRIPTION",'
' "TDESCRIPTION"."SHOW_IN_WEB" = :"SHOW_IN_WEB"'
'where'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"OLD_DESCRIPTION_ID"')
GeneratorField.Field = 'DESCRIPTION_ID'
GeneratorField.Generator = 'GEN_TDESCRIPTION_ID'
GeneratorField.ApplyEvent = gamOnPost
Left = 224
Top = 136
object DescriptionDESCRIPTION_ID: TIntegerField
FieldName = 'DESCRIPTION_ID'
Origin = 'TDESCRIPTION.DESCRIPTION_ID'
Required = True
end
object DescriptionPARENT: TIntegerField
FieldName = 'PARENT'
Origin = 'TDESCRIPTION.PARENT'
Required = True
end
object DescriptionFOLDER: TIBStringField
FieldName = 'FOLDER'
Origin = 'TDESCRIPTION.FOLDER'
Required = True
Size = 50
end
object DescriptionDESCRIPTION: TMemoField
FieldName = 'DESCRIPTION'
Origin = 'TDESCRIPTION.DESCRIPTION'
BlobType = ftMemo
Size = 8
end
object DescriptionSHOW_IN_WEB: TIBStringField
FieldName = 'SHOW_IN_WEB'
Origin = '"TDESCRIPTION"."SHOW_IN_WEB"'
FixedChar = True
Size = 1
end
end
<pre>
Gruß Andreas
<p>ich habe eine IB(6 Dialect 3) Tabelle die einen Primärschlüsselwert über Trigger (BEFORE INSERT POSITION 0) mit Hilfe eines Generators bekommt.</p>
<pre>
IF (NEW.DESCRIPTION_ID IS NULL) THEN
NEW.DESCRIPTION_ID = GEN_ID(GEN_TDESCRIPTION_ID,1);</pre>
<p>
Jetzt ist mir aufgefallen das der Generator immer noch auf Null steht, obwohl der Inkrementelle PK korrekt erhöht wird.
</p>
<p>
Der DB Zugriff erfolgt über IBX 5,04; TIBDataSet; TIBGeneratorApplyEvent = (gamOnPost);</p>
<p>
Die Inkrementierung verhält sich wie (Select max(ID) from Table + 1), lösche ich einen Wert wird der nächste Wert der des Vorgängers.</p>
<p>
Interessanterweise verwende ich die gleiche TIBDataSet Einstellung auch mit anderen Tabellen (gleicher Aufbau) und dort wird der Generator korrekt Inkrementiert.</p>
<p>Anzahl der Generatoren ist 17</p>
<b>DFM</b>
<pre>
object Description: TIBDataSet
Database = IBDB
Transaction = IBTA
ForcedRefresh = True
AfterDelete = CommitAfterDelete
AfterPost = CommitAfterPost
OnDeleteError = OnDeleteError
OnNewRecord = DescriptionNewRecord
OnPostError = OnPostError
OnUpdateError = OnUpdateError
BufferChunks = 1000
CachedUpdates = False
DeleteSQL.Strings = (
'delete from "TDESCRIPTION"'
'where'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"OLD_DESCRIPTION_ID"')
InsertSQL.Strings = (
'insert into "TDESCRIPTION"'
' ("TDESCRIPTION"."DESCRIPTION_ID", "TDESCRIPTION"."PARENT", '
'"TDESCRIPTION"."FOLDER", '
' "TDESCRIPTION"."DESCRIPTION", "TDESCRIPTION"."SHOW_IN_WEB")'
'values'
' (:"DESCRIPTION_ID", :"PARENT", :"FOLDER", :"DESCRIPTION", '
':"SHOW_IN_WEB")')
RefreshSQL.Strings = (
'Select '
' "TDESCRIPTION"."DESCRIPTION_ID",'
' "TDESCRIPTION"."PARENT",'
' "TDESCRIPTION"."FOLDER",'
' "TDESCRIPTION"."DESCRIPTION",'
' "TDESCRIPTION"."SHOW_IN_WEB"'
'from "TDESCRIPTION" '
'where'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"DESCRIPTION_ID"')
SelectSQL.Strings = (
'select * from "TDESCRIPTION"')
ModifySQL.Strings = (
'update "TDESCRIPTION"'
'set'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"DESCRIPTION_ID",'
' "TDESCRIPTION"."PARENT" = :"PARENT",'
' "TDESCRIPTION"."FOLDER" = :"FOLDER",'
' "TDESCRIPTION"."DESCRIPTION" = :"DESCRIPTION",'
' "TDESCRIPTION"."SHOW_IN_WEB" = :"SHOW_IN_WEB"'
'where'
' "TDESCRIPTION"."DESCRIPTION_ID" = :"OLD_DESCRIPTION_ID"')
GeneratorField.Field = 'DESCRIPTION_ID'
GeneratorField.Generator = 'GEN_TDESCRIPTION_ID'
GeneratorField.ApplyEvent = gamOnPost
Left = 224
Top = 136
object DescriptionDESCRIPTION_ID: TIntegerField
FieldName = 'DESCRIPTION_ID'
Origin = 'TDESCRIPTION.DESCRIPTION_ID'
Required = True
end
object DescriptionPARENT: TIntegerField
FieldName = 'PARENT'
Origin = 'TDESCRIPTION.PARENT'
Required = True
end
object DescriptionFOLDER: TIBStringField
FieldName = 'FOLDER'
Origin = 'TDESCRIPTION.FOLDER'
Required = True
Size = 50
end
object DescriptionDESCRIPTION: TMemoField
FieldName = 'DESCRIPTION'
Origin = 'TDESCRIPTION.DESCRIPTION'
BlobType = ftMemo
Size = 8
end
object DescriptionSHOW_IN_WEB: TIBStringField
FieldName = 'SHOW_IN_WEB'
Origin = '"TDESCRIPTION"."SHOW_IN_WEB"'
FixedChar = True
Size = 1
end
end
<pre>
Gruß Andreas