Toon posts:

[ASP/ORACLE] Datum probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende query in ASP:

code:
1
Set addRecordSet = OraDatabase.Execute("INSERT INTO OWN_VOORBEELD (veld1, veld2, veld3, veld4,veld5,veld6, veld7,veld8) values ('" & tmpstr1 & "','" & tmpstr2 & "','" &tmpstr3 & "','" & tmpstr4 & "','" & tmpstr5 & "','" & tmpstr6 & "','" & tmpDatum & "','" & tmpstr8 & "')")



Alles gaat goed behalve ..... het zal ook eens niet ..... het datumveld. Ik krijg de foutmelding "not a valid month"

Met dat datumveld doe ik helemaal niets. Ik lees het uit de Oracle database, zet het in een variabele en schrijf het direct weer terug. Wat moet ik hier anders doen? Ben al met To_date bezig geweest maar dat moet toch niet nodig zijn?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ga jezelf eens verdiepen in Parametrized queries. Dit datum probleem creeer je namelijk zelf. De datuminstelling van je Oracle Server zijn ongetwijfeld Amerikaans, terwijl je eigen datum instellingen op Nederlands staan.

Mocht het je teveel moeite zijn, dan zul je toch met to_date aan de slag moeten. Vergeet dan niet om je datum eerst te formatteren naar een zeker vast en bekend formaat.

  • xmen
  • Registratie: Februari 2004
  • Laatst online: 14-02 22:10
In ASP ben ik niet zo goed thuis, maar Oracle wel.

Quick fix : Maak van je datum een string (door een of ander formatter class) met de juiste mask (in mijn voorbeeld dd/mm/yyyy hh24:mi:ss).
En gebruik de oracle functie to_date om de datum in de database te inserten.

in jou geval :

Set addRecordSet = OraDatabase.Execute("INSERT INTO OWN_VOORBEELD (veld1, veld2, veld3, veld4,veld5,veld6, veld7,veld8) values ('" & tmpstr1 & "','" & tmpstr2 & "','" &tmpstr3 & "','" & tmpstr4 & "','" & tmpstr5 & "','" & tmpstr6 & "',to_date('" & tmpDatum & "','dd/mm/yyyy hh24:mi:ss'),'" & tmpstr8 & "')")

hh24 = uur in 24 notatie, ik neem aan dat de rest duidelijk is.

Het probleem ligt waarschijnlijk dat de database setting een andere NLS-setting heeft dan je ASP omgeving met als gevolg dat in datums maand en dag omgewisseld zijn in de database tov je ASP

Deze quickfix lost dit op, mooier is natuurlijk alles op een rij te hebben.


X

Verwijderd

Topicstarter
xmen schreef op woensdag 02 augustus 2006 @ 11:10:
In ASP ben ik niet zo goed thuis, maar Oracle wel.

Quick fix : Maak van je datum een string (door een of ander formatter class) met de juiste mask (in mijn voorbeeld dd/mm/yyyy hh24:mi:ss).
En gebruik de oracle functie to_date om de datum in de database te inserten.

in jou geval :

Set addRecordSet = OraDatabase.Execute("INSERT INTO OWN_VOORBEELD (veld1, veld2, veld3, veld4,veld5,veld6, veld7,veld8) values ('" & tmpstr1 & "','" & tmpstr2 & "','" &tmpstr3 & "','" & tmpstr4 & "','" & tmpstr5 & "','" & tmpstr6 & "',to_date('" & tmpDatum & "','dd/mm/yyyy hh24:mi:ss'),'" & tmpstr8 & "')")

hh24 = uur in 24 notatie, ik neem aan dat de rest duidelijk is.

Het probleem ligt waarschijnlijk dat de database setting een andere NLS-setting heeft dan je ASP omgeving met als gevolg dat in datums maand en dag omgewisseld zijn in de database tov je ASP

Deze quickfix lost dit op, mooier is natuurlijk alles op een rij te hebben.


X
Xmen, je bent mijn held. Bedankt!!! Ik was hier al mee bezig maar zette de quotes iedere keer verkeerd. Nu doet ie het!!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik zou je toch aanraden om een keer naar parametrized queries te kijken, want dit is natuurlijk een brakke oplossing. Het feit dat je met ASP werkt suggereert bij mij dat je ook pagina's maakt waar gebruikers dingen kunnen invoeren. Jouw huidige manier van werken maakt sql-injection wel erg eenvoudig. Door van PQ's gebruik te maken vang je twee vliegen in een klap, want zowel je datum problemen als sql-injection behoren ermee definitief tot het verleden.