Re: Name von Tmp-Tabelle aus Select ... Into
From: Hans Glasbrenner (news4hans_at_despammed.com)
Date: 02/01/05
- Next message: Bernd Jungbluth: "Re: Transaction Log ausschalten für Massenimport"
- Previous message: Jens Meyer: "Re: TCP/IP Verbindung zum MSSQL Server"
- In reply to: Frank Kalis: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Next in thread: Olaf Pietsch: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Reply: Olaf Pietsch: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Reply: Elmar Boye: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Reply: Frank Kalis: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 01 Feb 2005 08:25:09 +0100
Hallo Frank,
der Einsatzzweck ist eine sehr komplizierte Preisbestimmung, welche
sich nicht einfach mit Select - Anweisungen erledigen laesst. Das
Ganze wir fuer eine ASP-Ausgabe benoetigt. Die Idee war, moeglichst
viel in T-SQL zu erledigen und nur noch ein bischen unvermeidlichen
Rest in ASP. Ueber eine Tabelle, welche temporaer erzeugt wird, werden
alle Berechnungen sauber ausgefuehrt. Es sah zu Beginn alles ganz gut
aus. Testweise Aufrufe aus einem Access-Projekt haben 100%
funktioniert.
Erst als die Sache Multiuserfaehig und ASP-tauglich werden sollten
kamen die Probleme. Da eine echte temp. Tabelle nicht lange genug lebt
(bis zur nachfolgenden ASP-Auswertung), musste eine normale Tabelle
erzeugt werden (SessionId im Tabellennamen). ASP hat ein uebriges
dazugetan und legt die Tabelle nicht einfach nur mit dem Namen,
sondern User-abhaengig mit Namenserweiterung, an. Dies bedingt nun,
dass der Tabellen-Name in allen beteiligten SPs (ca. 5 Stck) und in
ASP variabel sein muss. Dies war die Stelle, an der ich dank Olafs
Hinweis auf dynamisches SQL gekommen bin. Ueber SQL-Injection etc.
habe ich ein paar Dinge gelesen und denke, dass ich alle Eingabefelder
gefiltert verarbeiten werde, um Boese Dinge zu unterdruecken.
Im Moment sind bei dynamischem SQL zwei Dinge, welche noch Aerger
machen. Das Eine ist der dynamische Cursor und das Andere ist, dass in
einem Select .., Into ein paar Datums-Variable als datetime -
Parameter in eine SP gegeben und in der Where-Klausel verwendet
werden. Ohne dynamisches SQL hat dies funktioniert und bei dynamischem
SQL kommt eine Fehlermeldung Konvertierungsfehler datetime <->
nvarchar, jedoch ohne Angabe der Fehler-Stelle.
Verkuerzter Auszug aus SQL-Aufbau:
@VonDatum u. @BisDatum sind SP-Parameter vom Type datetime und
enthalten das Datum in der Form '16.06.2005'
SET Dateformat dmy
SET @strSQL = @strSQL + ' WHERE (Re_Rent.Vermietet_ab BETWEEN ' +
@VonDatum + ' AND ' + @BisDatum + ') '
Bei der normalen SP hat dies ohne Problem funktioniert.
Vielen Dank fuer eure Hilfe
Hans
- Next message: Bernd Jungbluth: "Re: Transaction Log ausschalten für Massenimport"
- Previous message: Jens Meyer: "Re: TCP/IP Verbindung zum MSSQL Server"
- In reply to: Frank Kalis: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Next in thread: Olaf Pietsch: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Reply: Olaf Pietsch: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Reply: Elmar Boye: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Reply: Frank Kalis: "Re: Name von Tmp-Tabelle aus Select ... Into"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|