Re: Name von Tmp-Tabelle aus Select ... Into

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Hans Glasbrenner (news4hans_at_despammed.com)
Date: 02/01/05


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



Relevant Pages

  • Re: SP mit Update aus UDF-Returnwert
    ... Bei der Anwendung handelt es sich nicht um Access, sondern um ASP. ... Tabelle in eine andere eingetragen werden muessen. ... An eine temporaere Tabelle fuer die schwarze Liste habe ich auch schon ... Next by Date: ...
    (microsoft.public.de.sqlserver)
  • Re: ASP, looping, and stored procedures.... error 800a0bb9 ...
    ... > page PER loop. ... The looping goes by month from and to dates selected ... > In pure ASP the page takes about 15 seconds. ... > Oh, and by the way, the test box has SQL server and IIS on it. ...
    (microsoft.public.inetserver.asp.db)
  • Re: SQL beginner help
    ... statements that are embedded in the code(Sorta like how I can use SQL ... statements to the server)? ... with the Asp code it will decide what how to handle what the user is able ... But I still need some client side execution;/ I think I got a good picture ...
    (microsoft.public.sqlserver)
  • Re: forum erstellen
    ... >> abhängt ob das Forum funktioniert und weniger von den ASP Kenntnissen ... SQL Abfragen. ... mal Beiträge löschen kann, ...
    (microsoft.public.de.inetserver.iis.asp)
  • Re: SQL beginner help
    ... statements that are embedded in the code(Sorta like how I can use SQL ... statements to the server)? ... so its up to the asp front end to manage security(I guess its better ... But I still need some client side execution;/ I think I got a good picture ...
    (microsoft.public.sqlserver)