Einzelnen Beitrag anzeigen

Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#17

AW: Firebird 3.0 Order mit Feldname bei Union

  Alt 16. Aug 2021, 11:35
Man kann ja auch im Vorfeld die Feldliste holen und testen, ob gleich:
(oder halt die SQL-Anweisung als String zusammenbauen und ausführen)
Code:
SET TERM ^;

CREATE OR ALTER PROCEDURE sp_get_columns

  tablename VARCHAR(30),
  uppercase BOOLEAN = true
)
RETURNS
(
  feldliste VARCHAR(2000)
)
AS
  DECLARE feldname VARCHAR(40) = '';
BEGIN
  feldliste = '';
  FOR SELECT rdb$field_name FROM rdb$relation_fields
      WHERE UPPER(rdb$relation_name) = UPPER(:tablename)
      ORDER BY rdb$field_position
  INTO :feldname
  DO BEGIN
    IF (feldliste <> '') THEN feldliste = feldliste || ',';
    feldliste = feldliste || TRIM(feldname);
  END
  IF (NOT uppercase) THEN feldliste = LOWER(feldliste);
END^

SET TERM ;^
  Mit Zitat antworten Zitat