Zum Inhalt springen

SQL: Spalte für Spalte SQL intern abarbeiten


Arnie

Empfohlene Beiträge

Hallo miteinander,

ich habe in SQL ein Problem. Mir liegt eine Tabelle vor, in der sich täglich die Spaltenanzahl verändern kann. Die einzigen statischen Spalten sind MitarbeiterNr und ZeilenTyp. Konkret geht es um eine Programm-Berechtigungstabelle.

Wenn nun ein neues Programm geschrieben wurde, muss es natürlich als neue Spalte in die Tabelle eingefügt werden... Dann müsste ich aber auch jedesmal die SQL-Abfrage dementsprechend anpassen. Sprich: Das muss automatisch gehen.

Nun suche ich nach einer Möglichkeit z.B. mit einer SQL internen FOR EACH Schleife Spalte 3 bis "n" abzuklappern. Bin bisher allerdings zu keiner vernünftigen Lösung gekommen und bin recht verzweifelt.

Alles nur, weil mir mein Ausbilder Recordsets verboten hat...

MfG Arnie

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Arnie

ich habe in SQL ein Problem. Mir liegt eine Tabelle vor, in der sich täglich die Spaltenanzahl verändern kann. Die einzigen statischen Spalten sind MitarbeiterNr und ZeilenTyp. Konkret geht es um eine Programm-Berechtigungstabelle.

Wenn nun ein neues Programm geschrieben wurde, muss es natürlich als neue Spalte in die Tabelle eingefügt werden...

Offengestanden klingt das eher nach einem fragwürdigen Datenmodell.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

was hat dein ausbilder denn zum auslesen einer datenbank erlaubt?

prinzipiell kann man ja schon mit 'select * from ...' alle spalten auslesen, und sich dann durch die spalten hangeln. und die spaltennamen liefert eine datenbank normalerweise auch auf anfrage (je nach provider unterschiedlich)

btw, das design koennt echt schoener sein...

Link zu diesem Kommentar
Auf anderen Seiten teilen

bist du sicher, dass es sich um die spaltenzahl handelt?? dann hat dein datenbank entwickler mist gebaut, denn sowas sollte normalerweise niemals auftreten.

sql ist aber definitiv nicht zum linearen abarbeiten einzelner zeilen erfunden worden, d.h. du brauchst ne programmiersprache die dir das realisiert.

jedoch wuerde ich mir das konzept nochmal genauer ansehen, analysieren und schauen wie man das problem beheben kann, indem man fixe tabellen verwendet.

so long

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Design habe ich mir nicht ausgesucht.

Es muss doch in SQL eine Möglichkeit geben Spalte für Spalte automatisch durchzugehen... In VB habe ich das ja bereits mit einem Recordset gelöst, doch Cheffe will dat nicht.

Tabelle ms_berechtigungen

- MNr

- ZeilenTyp

- Prog1

- Prog2

- Prog3

- ...

MfG Arnie

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich kenne keine moeglichkeit, wie man mit native sql weder spalten noch zeilen nacheinander durchgehen kann.

da brauchst dazu eine programmiersprache.

datenbanknah: PL/SQL (oracle) (sowas aehnliches gibt es auch von ms, keine ahnung wie das heisst)

anwendung ueber schnittstellen: ODBC, JDBC, native Treiber.

so long

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe die Lösung gefunden, wenn auch etwas umständlich, jedoch geht es in Verbindung mit VB so einigermaßen flott.

Um das zusätzliche Recordset bin ich auf diese Weise leider nicht drum rum gekommen, aber diese Abfrage zu Beginn lahmt wenigstens nicht...

SELECT syscolumns.Name
FROM dbo.syscolumns
INNER JOIN
dbo.sysobjects
ON dbo.sysobjects.id = dbo.syscolumns.id
WHERE dbo.sysobjects.name = 'ms_tabellenname'
ORDER BY syscolumns.name[/PHP]

MfG Arnie

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...