Convert dato problem i MS SQL Database
Jeg skal sette inn og hente datoer flere ganger i et script. Hvordan kan jeg få formatet til å bli likt på alle sammen? Så jeg slipper å konvertere datoen hver eneste gang jeg skal sette den inn?Noen ganger blir 03.01.2004 til 01.03.2004
//Morten
<%
'Fant denne på eksperten...
Function ConvertToSqlDate(dato)
dim SQLYear,SQLMonth,SQLDay
SQLYear = Year(dato)
SQLMonth = Month(dato)
SQLDay = Day(dato)
If SQLDay < 10 Then
SQLDay = 0&SQLDay
End if
If SQLMonth < 10 Then
SQLMonth = 0&SQLMonth
End If
ConvertToSqlDate = SQLYear&SQLMonth&SQLDay
End Function
%>
<%
Option Explicit
Server.ScriptTimeout = 500
Session.LCID = 1033
%>
<!--#include file ="../include/global_variables.asp"-->
<!--#include file ="../user_include/check_import_login.asp"-->
<!--#include file ="include/sjekk_loggin.asp"-->
<!--#include file ="../include/include_dbconn.asp"-->
<%
strConn = "Provider=SQLOLEDB;Initial Catalog=import_biler; Server=;User ID=;Password="
dim adoCn
dim strSQL
set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.Open strConn
%>
<!--#include file ="../include/include_dbconn_error.asp"-->
<%
'----------------------------------------------------------------------------------------------------------------------------------------
'HENTER PREMIE - START
'----------------------------------------------------------------------------------------------------------------------------------------
strSQL = "SELECT Premie FROM tbl" & strKundeNavn & "Premie WHERE PID='1'"
set adoRs = adoCn.Execute(strSQL)
If not adoRs.EOF Then
strAarspremie = adoRs("Premie")
End if
strPremie = 1
adoRs.Close
Set adoRs = Nothing
'----------------------------------------------------------------------------------------------------------------------------------------
'HENTER PREMIE - SLUTT
'----------------------------------------------------------------------------------------------------------------------------------------
strFil = Trim(Request.Form("txtFile"))
strPath = strLoggOKPath & strFil
Set FSO = CreateObject("Scripting.FileSystemObject")
If not FSO.FileExists(strPath) Then
Response.Redirect "step1.asp?MSG=Filen eksisterer ikke lenger, last opp ny fil(S4)"
Response.End
End if
Filespec = strPath
Set F = FSO.OpenTextFile(Filespec,1)
error = ""
i = 0
iNew = 0
iUpdate = 0
iNoUpdate = 0
iDelete = 0
iNoDelete = 0
Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
'Henter data fra txtfil
strEier = Trim(filArr(0))
strRegnr = UCASE(Trim(filArr(1)))
strFabrikat = Trim(filArr(2))
strModell = Trim(filArr(3))
strType = Trim(filArr(4))
strArsmodell = Trim(filArr(5))
strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma.
strListePris = Trim(filArr(7))
strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie.
strAvdeling = Trim(filArr(9))
strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med
strGjelderFra = Trim(Replace(filArr(11),".","/" ))
strAktiv = Trim(filArr(12))
strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
strDato2 = strGjelderFra
strDay2 = Day( strdato2 )
if len(strDay2) = 1 then
strDay2 = "0" & strDay2
end if
strMonth2 = Month( strdato2 )
if len(strMonth2) = 1 then
strMonth2 = "0" & strMonth2
end if
strYear2 = Year( strdato2 )
if len(strYear2) = 1 then
strYear2 = "0" & strYear2
end if
strGjelderFra = strDay2 & "/" & strMonth2 & "/" & strYear2
'----------------------------------------------------------------------------------------------------------------------------------------
'REGNER PERIODE PREMIE - START
'----------------------------------------------------------------------------------------------------------------------------------------
strSisteDag = year(Date()) & "/12/31"
strGetDager = DateDiff("Y", strGjelderFra, strSisteDag)
strDagerIaar = DateDiff("Y", year(Date()) & "/01/01", year(Date()) & "/12/31")
strPeriodePremie = Cstr(strAarspremie) / strDagerIaar * Cstr(strGetDager)
If Int(formatnumber((strPeriodePremie),0)) > Int(strAarsPremie) Then
strPeriodePremie = strAarsPremie
End if
'----------------------------------------------------------------------------------------------------------------------------------------
'REGNER PERIODE PREMIE - SLUTT
'----------------------------------------------------------------------------------------------------------------------------------------
strSQL = "SELECT BID FROM tblHertzkorttidsleieBiler WHERE RegNr='" & Trim(FilArr(1)) & "'"
set adoRs = adoCn.Execute(strSQL)
If adoRs.EOF Then
strSQL = ""
strSQL = "INSERT INTO tbl" & strKundeNavn & "Biler (FKEier,Regnr,FKFabrikat,FKModell,FKType,Arsmodell,Motorstorrelse,ListePris,FKPremie,PeriodePremie,FKBRAvdeling,OppRettetDato,FKRegAv,GjelderFra,Aktiv,EndretDato) VALUES " &_
"(" & strEier & ",'" & strRegnr & "'," & strFabrikat & "," & strModell & "," & strType & "," & strArsmodell & ",'" & strMotor & "'," & strListePris & "," & strPremie & "," & Clng(strPeriodePremie) & "," & strAvdeling & ",'" & now() & "'," & strRegAv & ",'" & ConvertToSqlDate(strGjelderFra) & "','" & strAktiv & "','" & now() & "')"
adoCn.Execute(strSQL)
iNew = iNew + 1
Else
strBID = adoRs("BID")
'Bilen blir oppdatert eller slettet
strSQL = ""
strSQLOLD = ""
'Henter gamle data
set adoRsOLD = Server.CreateObject("ADODB.Recordset")
strSQLOLD = "Select DISTINCT AID,Anavn,BID,FKEier,RegNr,FKFabrikat,FKModell,FKType,ArsModell,MotorStorrelse,ListePris,Premie,PeriodePremie,FKBRAvdeling,OpprettetDato,GjelderFra,Eier,Aktiv FROM tbl" & strKundeNavn & "Eier, tbl" & strKundeNavn & "Biler, tbl" & strKundeNavn & "Fabrikat,tbl" & strKundeNavn & "Type,tbl" & strKundeNavn & "Premie,tbl" & strKundeNavn & "Avdeling,tbl" & strKundeNavn & "Modell WHERE FKEier=EID AND Regnr='" & strRegnr & "' AND FKFabrikat=FID AND FKModell=MID AND FKType=TID AND FKBRAvdeling=AID and FKPremie=PID"
set adoRsOLD = adoCn.Execute(strSQLOLD)
If not adoRsOLD.EOF then
strOLDAID = adoRsOLD("AID")
strOLDANavn = adoRsOLD("ANavn")
strOLDBID = adoRsOLD("BID")
strOLDEID = adoRsOLD("FKEier")
strOLDEierNavn = adoRsOLD("Eier")
strOLDRegNr = adoRsOLD("RegNr")
strOLDFKFabrikat = adoRsOLD("FKFabrikat")
strOLDFKModell = adoRsOLD("FKModell")
strOLDFKType = adoRsOLD("FKType")
strOLDArsModell = adoRsOLD("ArsModell")
strOLDMotorstorrelse = adoRsOLD("MotorStorrelse")
strOLDListePris = adoRsOLD("Listepris")
strOLDPremie = adoRsOLD("Premie")
strOLDPeriodePremie = adoRsOLD("PeriodePremie")
strOLDGjelderFra = adoRsOLD("GjelderFra")
strOLDAktiv = adoRsOLD("Aktiv")
End If
adoRsOLD.Close
set adoRsOLD = nothing
If strAktiv = "JA" Then
error = ""
UpdateCar = False
If Cint(strAvdeling)=Cint(strOLDAID) AND Cint(strEier)=Cint(strOLDEID) AND strRegnr=strOLDRegNr AND Cint(strFabrikat)=Cint(strOLDFKFabrikat) AND Cint(strModell)=Cint(strOLDFKModell) AND Cint(strType)=Cint(strOLDFKType) AND Cint(strArsModell)=Cint(strOLDArsModell) AND strMotor=strOLDMotorstorrelse AND Cint(strListePris)=Cint(strOLDListePris) AND Trim(strGjelderFra)=Trim(strOLDGjelderFra) Then
iNoUpdate = iNoUpdate + 1
UpdateCar = True
End if
If UpdateCar = False Then
strSQL = "SELECT BID,RegNr FROM tbl" & strKundeNavn & "Biler WHERE Regnr=" & "'" & strRegnr &"' AND Aktiv='JA'"
set adoRsFind = adoCn.Execute(strSQL)
InserOK = false
if not adoRsFind.EOF then
if CInt(strOLDBID) = CInt(adoRsFind("BID")) then
'Regnr finnes men det er samme bruker.
InserOK = true
end if
else
InserOK = true 'Nytt Regnr finnes ikke.
end if
If error <> "" Then
Response.Clear
%><html>
<body onload="window.alert('En feil oppstod! \n<% =error %>');
window.history.back();">
</body></html><%
Response.End
End If
strDato = "now()"
if InserOK = true then
strSQL = ""
strSQL = "UPDATE tbl" & strKundeNavn & "biler Set FKEier=" & strEier &_
", FKFabrikat = " & strFabrikat &_
", FKModell = " & strModell &_
", FKType = " & strType &_
", ArsModell = " & strArsModell &_
", MotorStorrelse = '" & strMotor &_
"', ListePris = " & strListePris &_
", FKPremie = " & strPremie &_
", PeriodePremie = " & Clng(strPeriodePremie) &_
", FKBRAvdeling = " & strAvdeling &_
", FKRegAv = " & strRegAv &_
", GjelderFra = '" & ConvertToSqlDate(strGjelderFra) &_
"', Aktiv = '" & strAktiv &_
"', EndretDato = '" & now() &_
"' WHERE Regnr='" & strRegnr &"'"
adoCn.Execute(strSQL)
'----------------------------------------------------------------------------------------------------------------------------------------
'LOGG ENDRINGER - START
'----------------------------------------------------------------------------------------------------------------------------------------
Set oRS=Server.CreateObject("ADODB.Recordset")
oRS.CursorLocation = 2 ' adUseServer
oRS.CursorType = 2 ' adOpenDynamic
oRS.LockType = 3 ' adLockOptimistic
strSQL = ""
strSQL = "SELECT EndreFKBID,NyEier,GammelEier,NyRegNr,GammelRegNr,NyFabrikat,GammelFabrikat,NyModell,GammelModell,NyType,GammelType,NyArsmodell,GammelArsmodell,NyMotorStorrelse,GammelMotorStorrelse,NyListePris,GammelListePris,NyPremie,GammelPremie,NyPeriodePremie,GammelPeriodePremie,NyAvdeling,GammelAvdeling,NyGjelderFra,GammelGjelderFra,EndretAv,EndretDato FROM tbl" & strKundeNavn & "LoggEndringer"
oRS.Open strSQL, strConn, , , &H0001 ' adCmdText
oRS.AddNew
oRs("EndreFKBID") = strOLDBID
oRs("NyEier") = strEier
oRs("GammelEier") = strOldEID
oRS("NyRegnr") = strRegNr
oRS("GammelRegnr") = strOldRegNr
oRS("NyFabrikat") = strFabrikat
oRS("GammelFabrikat") = strOLDFKFabrikat
oRS("NyModell") = strModell
oRS("GammelModell") = strOLDFKModell
oRS("NyType") = strType
oRS("GammelType") = strOLDFKType
oRS("NyArsmodell") = strArsmodell
oRS("GammelArsmodell") = strOldArsmodell
oRS("NyMotorStorrelse") = strMotor
oRS("GammelMotorStorrelse") = strOLDMotorstorrelse
oRS("NyListePris") = strListePris
oRS("GammelListePris") = strOldListePris
oRS("NyPremie") = strAarspremie
oRS("GammelPremie") = strOldPremie
oRS("NyPeriodePremie") = Clng(strPeriodePremie)
oRS("GammelPeriodePremie") = strOldPeriodePremie
oRS("NyAvdeling") = strAvdeling
oRS("GammelAvdeling") = strOldAID
oRS("NyGjelderFra") = ConvertToSqlDate(strGjelderFra)
oRS("GammelGjelderFra") = ConvertToSqlDate(strOldGjelderFra)
oRS("EndretAv") = strRegAv
oRS("EndretDato") = now()
oRS.Update
'----------------------------------------------------------------------------------------------------------------------------------------
'LOGG ENDRINGER - SLUTT
'----------------------------------------------------------------------------------------------------------------------------------------
oRS.Close
Set oRS = Nothing
else
error = error & " Regnr er benyttet før eller så er bilen aktiv i databasen! Regnr på bilen var" & strRegnr & " - Feilen var i linje " & i & "\n"
end if
If error <> "" Then
Response.Clear
%><html>
<body onload="window.alert('En feil oppstod! \n<% =error %>');
window.history.back();">
</body></html><%
Response.End
End If
iUpdate = iUpdate + 1
End if
ElseIf strAktiv = "NEI" Then
If strOLDAktiv <> "NEI" Then
strSQL = ""
strSQL = "UPDATE tbl" & strKundeNavn & "biler Set Aktiv='" & strAktiv &_
"', SlettetAv = " & strRegAv &_
", SlettetDato= '" & now() &_
"', SiOppForsikringFra = '" & ConvertToSqlDate(strSiOppForsikringFra) &_
"', EndretDato = '" & now() &_
"' WHERE Regnr='" & strRegnr &"'"
adoCn.Execute(strSQL)
If error <> "" Then
Response.Clear
%><html>
<body onload="window.alert('En feil oppstod! <% =error %>');
window.history.back();">
</body></html><%
Response.End
End If
'Hvis alt går i orden uten feil så lages loggen...........
'LOGG START
'**********************************************************
strSQL = "INSERT INTO tbl" & strKundeNavn & "LoggSlettinger (SlettetFKBID,SlettetEier,SlettetRegnr,SlettetAvdeling,SlettetAv,SlettetDato,SlettetSiOppForsikringFra) VALUES " &_
"(" & strBID & "," & strEier & ",'" & strRegnr & "'," & strAvdeling & "," & strRegAv & ",'" & now() & "','" & ConvertToSqlDate(strSiOppForsikringFra) & "')"
adoCn.Execute(strSQL)
'**********************************************************
'LOGG SLUTT
If error <> "" Then
Response.Clear
%><html>
<body onload="window.alert('En feil oppstod! <% =error %>');
window.history.back();">
</body></html><%
Response.End
End If
iDelete = iDelete + 1
Else
iNodelete = iNodelete + 1
End if
End if
End if
adoRs.Close
Set adoRs = Nothing
i = i + 1
Loop
adoCn.Close
set adoCn = nothing
Set F = Nothing
'Oppretter nytt filnavn
FilNavn = now()
strDay = Day( FilNavn )
if len(strDay) = 1 then
strDay = "0" & strDay
end if
strMonth = Month( FilNavn )
if len(strMonth) = 1 then
strMonth = "0" & strMonth
end if
strYear = Year( FilNavn )
if len(strYear) = 1 then
strYear = "0" & strYear
end if
strHour = Hour( FilNavn )
if len(strHour) = 1 then
strHour = "0" & strHour
end if
strMinute = Minute( FilNavn )
if len(strMinute) = 1 then
strMinute = "0" & strMinute
end if
strSecond = Second( FilNavn )
if len(strSecond) = 1 then
strSecond = "0" & strSecond
end if
FilNavn = strDay & "." & strMonth & "." & strYear & " KL " & strHour & "." & strMinute & "." & strSecond & " P-" & i & "_N-" & iNew & "_O-" & iUpdate & "_S-" & iDelete & "_IFS-" & iNoDelete & "_UE-" & iNoUpdate & ".txt"
'Nytt filnavn slutt
'Kopierer filen til logg mappen
strOKPath =strLoggPath & strFil
strOKPath = strLoggPath & FilNavn
FSO.CopyFile strPath,strOKPath
'Sjekker om import_files_OK/" & strFil eksisterer og sletter
FSO.DeleteFile(strPath)
strOKFile = False
If Not FSO.FileExists(strPath) Then
strOKFile = True
End if
'Sjekker om import_files_not_OK/" & strFil eksisterer
strNotOKFile = False
If Not FSO.FileExists(strPath) Then
strNotOKFile = True
End if
Set FSO = Nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<LINK REV=made href="mailto:morten@cyren.no">
<TITLE><%=strtittel%></TITLE>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Pragma" content="no-cache">
<META name="robots" content="NOINDEX">
<META name="Author" content="Morten Marius Cyrèn">
<META name="Copyright" content="Morten Marius Cyrèn">
<META name="Publisher" content="Morten Marius Cyrèn">
<link rel="shortcut icon" href="../../profil/icon/icon.ico">
<link rel="stylesheet" type="text/css" href="../css/stylesheetIE.css">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td align="center">
<div align="center" class="text"><b>STEG 4 AV 4 - <font color="green">FILEN ER IMPORTERT!</font></b></div>
<table style="border-right: rgb(204,204,204) 1px solid; border-top: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; width: 350px; border-bottom: rgb(204,204,204) 1px solid" cellspacing=0 cellpadding=0 border=0>
<tbody>
<tr valign=top align="middle">
<td style="padding-right: 10px; padding-left: 10px; padding-bottom: 10px; padding-top: 10px">
<table style="padding-right: 3px; padding-left: 3px; padding-bottom: 3px; padding-top: 3px" cellspacing=0 cellpadding=0 border=0>
<tbody>
<tr>
<td class="text">Antall poster i tekst filen: <b><font color="green"><%=i%></font></b> (P)</td>
</tr>
<tr>
<td class="text">Antall nyregistreringer: <b><font color="green"><%=iNew%></font></b> (N)</td>
</tr>
<tr>
<td class="text">Antall oppdateringer: <b><font color="green"><%=iUpdate%></font></b> (O)</td>
</tr>
<tr>
<td class="text">Antall slettinger: <b><font color="green"><%=iDelete%></font></b> (S)</td>
</tr>
<tr>
<td class="text">Antall ikke fullførte slettinger: <b><font color="red"><%=iNoDelete%></font></b> (Var slettet før!) (IFS)</td>
</tr>
<tr>
<td class="text">Antall uten endringer: <b><font color="red"><%=iNoUpdate%></font></b> (Like data i databasen og tekstfilen!) (UE)</td>
</tr>
<tr>
<td class="text">
<%
If strNotOKFile = True AND strOKFile = True Then
Response.Write "<font color='green'><b>Filene er slettet og overført til logg mappen!</b> - [ <a href='view_log.asp'>Se logg</a> ]</font>"
Else
If strNotOKFile = True Then
Response.Write "<font color='red'><b>import_files_not_OK/" & strFil & " er ikke tom</b></font>"
Elseif strOKFile = True Then
Response.Write "<font color='red'><b>import_files_OK/" & strFil & " er ikke tom</b></font>"
End if
End if
%>
</td>
</tr>
<tr>
<td class="text" align="middle">[ <a href="step1.asp">Last opp ny fil</a> ]</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</body>
</html>
