Frank: Syntax Error in Insert Into Statement

Beitrag lesen

okay fehler ist lokalisiert ;)

Zahlen müssen nach dem Auslesen aus dem DB-Feld mit CINT() umgewandelt werden. Problem: es müssen nicht immer _alle_ Formularfelder angegeben werden.

Wie kann man das _ohne_ If-Schleifen lösen? Ich will nicht elendig viele Zeilen Code damit zubringen um abzufragen ob der Eintrag nun vorhanden ist oder nicht.
Wenn ich CINT() auf einen Leerwert anwende bringt er Fehler.

(man müsste das Topic jetz eigentlich auf ASP setzen, sry, war nicht abzusehen...)

Hat da jemand eine Lösungsidee?

Sonst setze ich die Felder einfach auf den Datentyp Text und prüfe mittels JS ob in den Feldern wo man nur Zahlen eingeben darf auch nur Zahlen stehen..das wäre mein Lösungsansatz....

danke

Hi,

was wollen wir denn jetzt eigentlich?

ASP bzw. VBScript besitzt eine Implizite Variablenkonvertierung

der Fehler mit CInt(NULL) ist logisch, denn wie will man einen NULL (nicht 0)-Wert auch in ein Integer umwandeln?

Bei deinem SQL-Statement ist mir aufgefallen, das VALUES direkt an einer Klammer klebt. Da sollte mal besser ein Leerzeichen dazwischen.

Und, du mußt immer mit der maximalen Blödheit des Anwenders rechnen, der z.b. Text in ein Feld eingibt, wo eigentlich nur Nummern drinstehen sollen. Deswegen ist eine Validierung der gesendeten Werte unbedingt serverseitig erforderlich, denn wie Cheatah schon sagte, man kann nicht davon ausgehen, dass die Leute immer Javascript angeknipst haben. Du bräuchtest dann für jede Variable eine IF-Checkung dieser Art (natürlich nicht jedesmal mit sub/function davor):

function dataintodb
   IF not isNumeric(variable) THEN
      Response.Write "Eingabe sowieso entspricht nicht den Vorgaben"
      dataintodb = "error"
      exit function
   end if
   ....
   'bis hierhin gekommen? dann alles okay, also sql formulieren
   insert_sql = "..... bla bla ....."
   dbconn.execute insert_sql
   dataintodb = "error"
end function

HTH, tschau, Frank