Hi Hansa,
Zitat von
Hansa:
Anscheinend muß man select * from 'table' von Hand eingeben, damit er die Felder findet.Stimmt das?
Ja, aber das muss man bei IBX ja auch, nur da macht man es direkt im SelectSQL, hier wird das Fenster aufgerufen, in dem auch die anderen
SQL's festgelegt werden.
Zitat von
Hansa:
1. @Lemmy: (Generatoren) In Deinem Interbase Tutorial schreibst Du, man könne sie in dem DataSet bei Eigenschaft GeneratorField eintragen, die fehlt aber bei mir ! Auch die
SQL's mußten von Hand ergänzt werden (hinter WHERE kam nichts mehr) Ist das normal?
Sprechen wir jetzt von IBX oder FIBPlus?? Bei IBX muss die Einstellung inder Eigenschaft "GeneratorField" vorgenommen werden, bei FIBPlus lautet die Eigenschaft "AutoUpdateOptions". Dort kannst Du alles einstellen....
Die Erzeugung der
SQL's funktionierte bei mir immer einwandfrei. Hast Du ein Feld für den Primärindex ausgewählt??
Zitat von
Hansa:
2. Wo und wie ändert man die Reihenfolge der Felder? Habe ein Grid, da stehen die Felder genau verkehrt rum drin.
Erst mal im SelectSQL. Wenn Du Reihenfolge festlegen willst, dann führe alle Spalten einzeln auf (in der entsprechenden Reihenfolge). Wenn Du "Select * from" machst, dann gilt die Reihenfolge der Datenbank.
Zitat von
Hansa:
3. Wo kommt eigentlich die OLD_nr in den
SQL-Statements her und wozu ist die überhaupt gut?
Dazu muss ich weiter ausholen. In Interbase (und damit auch Firebird) kann man mit Triggern verschiedene Funktionen direkt auf dem Server ausführen. Trigger sind vergleichbar mit Events, also Ereignisse in Delphi. Da gibt es z.B. das Event OnUpdate. Dieser Trigger wird (wenn er definiert ist) immer ausgeführt. Um die Werte alt und neu zu unterscheiden, gibt es eben OLD und NEW Werte. Diese "Regel" haben die Komponentenbauer eben übernommen. Bei einem Update ist es, zumindest theoretisch, möglich den Primärindex zu ändern. Um das Statement aber korrekt auszuführen muss der Datensatz gefunden werden, der mit dem ALTEN Wert übereinstimmt, deshalb das OLD_, das ist auch bei den IBX so.
Zitat von
Hansa:
4. 'UPDATE "art" SET '
' "preis" = ?"preis",'
' "bez" = ?"bez",'
' "nr" = ?"nr"'
' WHERE '
' "nr" = ?"OLD_nr"'
' ')
Das Mini-Programm läuft, aber mich stören obige "?". Sie scheinen keine Auswirkungen zu haben
Hast Du dir schon mal eine Update-Clasue der TIBDataSet angeschaut?? Da stehen anstelle der ? einfach ein :! Das kannst Du aber auch einfach in der TFIBDataSet einstellen. Das ?, bzw. :, bedeutet, dass ein Parameter kommt, also eine Variable, die irgendwoher ihren WErt erhält.
Grüße
Lemmy
P.S.: Ich bin ab morgen für vermutlich 3 Wochen weg...