abfragen in funktionen packen
woormsen
- asp.net
0 Kay0 Frank aus Ulm
Hallo zsammen, habe in meinem skript ein select case... für den unten
geposteten teil sieht dies so aus
Case "getCShopper" : response.ContentType = "text/xml"
strSQL = "SELECT * FROM CShopper;"
set rs = conn.execute(strSQL)
if not rs.eof then
Response.Write "<mc><nm>getCShopper</nm><pm>"
do while not rs.eof
Response.Write "<a>"
Response.Write "<b>" & rs.Fields("ShopperID").value & "</b>"
Response.Write "<b>" & rs.Fields("Name").value & "</b>"
Response.Write "<b>" & rs.Fields("FirstName").value & "</b>"
Response.Write "<b>" & rs.Fields("HomeAddress").value & "</b>"
Response.Write "<b>" & rs.Fields("MobilePhone").value & "</b>"
Response.Write "<b>" & rs.Fields("EMail").value & "</b>"
Response.Write "<b>" & rs.Fields("ProfiTerminalID").value & "</b>"
Response.Write "<b>" & rs.Fields("PublicKeyShopper").value & "</b>"
Response.Write "<b>" & rs.Fields("VehicleType").value & "</b>"
Response.Write "<b>" & rs.Fields("ActicePerDay").value & "</b>"
Response.Write "<b>" & rs.Fields("CapacityRestriction").value & "</b>"
Response.Write "<b>" & rs.Fields("PhoneProfiTerminal").value & "</b>"
Response.Write "<b>" & rs.Fields("TransportBoxCapacity").value & "</b>"
Response.write "</a>"
rs.movenext
loop
Response.Write "</pm></mc>"
end if
rs.close
wenn ich nun den nächsten select ..bsp. cShop habe, den ich für diesen fall auch auslese, der aber natürlich andere fields hat und auch weniger
, wie kann ich das in eine Funktion packen und aufrufen.. bin da nicht unbedingt bewandert und will das lernen...
gruss aus bayern
Also, ich würd' für jeden Shop/Tabelle einen Array anlegen, der alle in der jeweiligen Tabelle enthaltenen Feldnamen enthält. Diesen Array würde ich dann an eine Funktion "Anzeigen" übergeben.
Desweiteren übergebe ich auch die ausgelesene Datenmenge mit an die Anzeige-Funktion.
Nun kannst du mit einer Schleife jedes einzelne Feld und den dazu ermittelten Wert ausgeben :-)
MfG, Kay
Nun kannst du mit einer Schleife jedes einzelne Feld und den dazu ermittelten Wert ausgeben :-)
MfG, Kay
...und wie leg ich diesen array an ?? hoffe die frage
is vertretbar...
Dim CShopper(1 To 3)
CShopper(1) = "ShopperID"
CShopper(2) = "Name"
CShopper(3) = "FirstName"
Könnte man z.B. in eine Datei packen und die dann auslesen. Da hätte man vielleicht nicht ganz so viel zu schreiben...
MfG, Kay
Hi, hallo
Könnte man z.B. in eine Datei packen...
oder aber auch in die Datenbank selbst ;-)
Tschau, tschüß,
Frank
Hi, hallo
fangen wir mal hier an:
den Aufwand mit x mal Response.Write kannst du dir bei geschickterer Programmierung sparen ... dazu später
du mußt dir genaue Gedanken machen, was du wann aus welchem Grund wie anzeigen willst
du mußt dir dazu Relationen und Bedingungen denken
dann mußt/wirst du sehen, welche Bereiche immer wieder das gleiche logische Schema hätten
dann weißt du auch, was du in eine Funktion kapseln könntest und kannst dich an die Arbeit machen, das Ding zu schreiben
....
für den einfachen Fall, daß du alle Felder einer Tabelle ausgeben willst, geht folgendes Konstrukt viel kürzer und universaler verwendbar:
sql_qr = "SELECT * FROM tbl_1"
set rs = conn.execute(sql_qr)
Do Until rs.EOF
for each feld in rs.fields
Response.Write "<b>" & feld.value & "</b>"
next
rs.moveNext
Loop
damit sollte schon deutlich werden, was du in einer Funktion kapseln kannst, nämlich die endgültige Ausgabe in HTML der Felder
nur so als Hilfe: das SQL-Statement wird sich evt. von CASE zu CASE unterscheiden, weil du andere Tabellen hast.
aber du könntest in deinem SELECT CASE den SQL-String zusammenbauen und an die Ausgabeprozedur (Funktion nur, wenn du einen Rückgabewert benötigst) übergeben, dorthin kannst du dann auch noch andere Sachen mit übergeben, die sich potentiell ändern könnten
ich hoffe, du konntest mir folgen ... dann darfst du jetzt freihändig weiterdenken
Tschau, tschüß,
Frank