AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Oracle & Dyn Cursor & Bulk SQL
Thema durchsuchen
Ansicht
Themen-Optionen

Oracle & Dyn Cursor & Bulk SQL

Ein Thema von Robert_G · begonnen am 25. Aug 2004 · letzter Beitrag vom 25. Aug 2004
 
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Oracle & Dyn Cursor & Bulk SQL

  Alt 25. Aug 2004, 13:08
Hi Robert,

nicht wirklich kürzer und auch schlecht optimierbar für den Server (gilt aber für dynamic SQL allgemein), aber in MSSQL sähe es so aus - weis nicht, ob Du das in Ora nachbauen kannst:
SQL-Code:
--Beispieltabellen:
CREATE TABLE DeineSysTabelle ( FeldName varchar(255)
                             , TabellenName varchar(255))
INSERT INTO DeineSysTabelle (FeldName, TabellenName) VALUES ('Vorname', 'Personen')
INSERT INTO DeineSysTabelle (FeldName, TabellenName) VALUES ('Name'   , 'Personen')

CREATE TABLE DeineDatenTabelle( Vorname varchar(255)
                              , Name varchar(255))
INSERT INTO DeineSysTabelle (Vorname, Name) VALUES ('Hans' , 'Wurst')
INSERT INTO DeineSysTabelle (Vorname, Name) VALUES ('Peter', 'Pan'  )

  DECLARE @FELD varchar(255)
        , @TABELLE varchar(255)
        , @SQL nvarchar(4000) -- nimmt Statement für Cursordeklaration auf

  DECLARE @MeinDynCur Cursor -- dynamischer Cursor
  
      SET @SQL = 'SET @MeinDynCur = CURSOR FOR SELECT '

  DECLARE MeinStatCur
   CURSOR FOR
   SELECT FeldName
     FROM DeineSysTabelle

     OPEN MeinStatCur
    FETCH NEXT
     FROM MeinStatCur
     INTO @FELD
        , @TABELLE
    WHILE @@Fetch_Status = 0 BEGIN -- durch Felder iterieren

        SET @SQL = @SQL+@FELD+', -- Feldliste ergänzen
      FETCH NEXT
       FROM MeinStatCur
       INTO @FELD
          , @TABELLE
    END -- WHILE

      SET @SQL = @SQL+' 0-- PseudoFeld für letztes Komma
      SET @SQL = @SQL+' FROM '+@TABELLE
      SET @SQL = @SQL+' WHERE Bedingung'
   -- CursorStatement fertig

   EXEC sp_execustesql(@SQL) -- legt Cursor an
   OPEN @MeinDynCur -- öffnet ihn
   ...
Gruß aus Berlin
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
 


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 21:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz