AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

Ein Thema von hoika · begonnen am 28. Feb 2020 · letzter Beitrag vom 3. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2      
hoika

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

Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 28. Feb 2020, 13:36
Datenbank: Firebird • Version: 3 • Zugriff über: IBDAC
Hallo,
mein Problem steht schon in der Überschrift.
Bisher habe ich die Felder immer über die Systemtabellen vergrößert.
Unter FB3 muss ja Alter Table Alter Column benutzt werden.

Das betreffende Feld wird aber in einem Trigger benutzt.

Und schon streikt FB3.
Ich müsste also erst den Trigger löschen, das Feld vergrößern und dann den Trigger wieder erzeugen.

Kennt jemand einen anderen, einfacheren Weg?
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 28. Feb 2020, 13:39
Trigger vorübergehend deaktivieren.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 28. Feb 2020, 14:14
Hallo,
das ging nicht
Alter Trigger InActive ging nicht (irgendwas von in use).
Heiko
  Mit Zitat antworten Zitat
jobo

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 28. Feb 2020, 14:50
Naja, der Trigger hat eine Aufgabe, die ist vielleicht wichtig.
Also muss man dafür sorgen, dass der oder die Clients nicht mehr auf die Tabelle zugreifen.
(Oder schaut nach irgendwelchen Leichen, die dem System vorgaukeln, dass es noch genutzt wird, alte Sessions, ..)
Wie das in FB administrativ gemacht wird, müsste ich allerdings selbst nachschauen.
Gruß, Jo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 28. Feb 2020, 14:53
Code:
gfix -shut single -force 0 <database>.fdb
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 29. Feb 2020, 12:46

Kennt jemand einen anderen, einfacheren Weg?
Neue Domain anlegen
Code:
ALTER TABLE YOUR_TABLENAME ALTER COLUMN YOUR_COLUMNAME TYPE YOUR_NEW_DOMAINNAME
Wenn man mir Domains arbeitet, kann man auch einfach die Domain verlängern:
Code:
ALTER DOMAIN YOUR_DOMAINNAME TYPE VARCHAR(NEW_SIZE)
Frank
Frank Reim
  Mit Zitat antworten Zitat
hoika

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 29. Feb 2020, 14:03
Hm,
Markus,
was mache ich mit dem Befehl?
Das Problem hat ein Nutzer vor Ort,
der mit diesem Befehl (und dem Gegenstück) nichts anfangen soll.
Und ich habe ev. auch ein Mehrmandantensystem.

"Neue Domain": klingt gut, muss ich mal sehen, ob das wirklich so geht.
Heiko
  Mit Zitat antworten Zitat
jobo

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 1. Mär 2020, 10:40
Der Befehl scheint dazu zu dienen, einen Fremdzugriff auszuschließen. Ist er abgesetzt, wäre die Bahn frei für Trigger löschen usw.
Der Klassiker ist ja, dass es ganz wichtige Nutzer gibt, die immer das Programm offen lassen, nicht gut für Updates.
Die Domains werden Dir wahrscheinlich nicht weiter helfen, weil Du sie dazu bereits an der Stelle verwenden müsstest.

Ansonsten:
Was erwartest Du? Und was sagt es uns, dass Du eventuell ein Mehrmandantensystem hast? > Du musst das Update mehrmals durchführen?!
Eine Modellaktualisierung aus der Ferne per Email oder so und keiner der sich drum kümmern muss/darf/kann? Ohne Remote Access geht es dann wohl nicht.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert
Online

Registriert seit: 15. Mär 2005
679 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 2. Mär 2020, 09:18
Moin, deaktivieren eines Triggers löscht keinerlei dependencies. In IBExpert gibt es ein spezielles Deaktivieren, das den kompletten quellcode des Triggers auskommentiert und den danach neu compiliert und somit dependencies auflöst. Ohne so was wie IBExpert bleibt eigentlich nur drop trigger, lter table, create trigger manuell machen (ob weitere Objekte zusätzlich betriffen sind, findet man in rdb$dependencies

Und falls wirklich jemand auf der db ein prepare statement mit genau dem Objekt hat (also der Table) und es dadurch ein "Object is use" Fehler gibt, dann kann man die Metadaten in IBExpert auch mit eine Einstellung in den Transaktionen (isc_tbp_wait statt default isc_tbp_nowait in den metadatentransaktionseinstellung der db registration, ob das in anderen tools auch geht weiss ich nicht, ich benutz keiner anderen Tools ) auch im laufenden Betrieb machen, gilt übirgens auch für fb25 sc und cs, fb3 ss ist da empfindlicher als fb25 ss.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
hoika

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

AW: Firebird 3: VarChar-Feld vergrößern, was in einem Trigger benutzt wird

  Alt 2. Mär 2020, 21:41
Hallo,
vielen Dank an alle.

FB3-Support wird erst mal nach hinten geschoben
Heiko
  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 18:59 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