Einzelnen Beitrag anzeigen

jobo

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

AW: Strukturänderung Ja/Nein-Felder in Firebird

  Alt 10. Sep 2019, 20:08

Code:
create or alter procedure GETALLDETAILS
returns (
    MYID integer,
    TABLE_NAME varchar(100) character set UTF8,
    COLUMN_NAME varchar(100) character set UTF8,
    COLUMN_VALUE char(100) character set UTF8)
as
begin
  for select COMP_ID
      from COMP_AUS
      group by COMP_ID
      into :MYID
  do
  begin
    for select F.RDB$RELATION_NAME, F.RDB$FIELD_NAME
        from RDB$RELATION_FIELDS F
        join RDB$RELATIONS R on F.RDB$RELATION_NAME = R.RDB$RELATION_NAME and R.RDB$VIEW_BLR is null and (R.RDB$SYSTEM_FLAG is null or R.RDB$SYSTEM_FLAG = 0)
        where (upper(F.RDB$RELATION_NAME) starting with upper('COMP_AUS')) and
              (upper(F.RDB$FIELD_NAME) containing upper('_JN'))
        order by 1, F.RDB$FIELD_POSITION
        into :TABLE_NAME, :COLUMN_NAME
    do
Und das sind noch mehr select..into mit dem gleichen Problem. Und das Group By in dem Select ist schon ein Schritt in die richtige Richtung, garantiert aber keinen Datensatzanzahl < 2.

Und IBExpert hat Recht mit seinen Hinweisen:
1. niemand hier hat Deine Daten und eine Struktur, die Eindeutigkeit sicherstellt gibt es ja so offenbar nicht. (Dafür sind Datenmodelle eigentlich da) Also folgt: alles ist möglich
2. Die Nutzung von SP ohne Parameter ist schon etwas fraglich. Also wenn schon "funktionale Programmierung" in SQL, wieso nicht gleich mit Eingangsparameter?
Ich habe mir das "Innenleben" der SP noch nicht so wirklich angeschaut, aber woher soll in der SP Getalldetails die Dynamik kommen?
Befüllst Du die Tabelle Comp_Aus vorher unterschiedlich?
Gruß, Jo
  Mit Zitat antworten Zitat