Avatar billede icamilla Nybegynder
18. september 2001 - 11:24 Der er 3 kommentarer og
1 løsning

DATO fra VB til SQL server tabell

hei, jeg skal legge dagens dato fra mitt VB program og inn i en SQL Server database. koden min ser slik ut:

Private Function ReplicateTextFile() As Boolean
  Dim strIn As String
  Dim spltStr() As String
 
  Open App.Path & \"\\item.txt\" For Input As #1
 
  Do Until EOF(1)
    Line Input #1, strIn
   
    spltStr = Split(strIn, \"\"\";\"\"\")
   
    If UBound(spltStr) = 2 Then
      spltStr(0) = RTrim(LTrim(Mid(RTrim(LTrim(spltStr(0))), 2)))
      spltStr(1) = RTrim(LTrim(spltStr(1)))
      spltStr(2) = RTrim(LTrim(spltStr(2)))
     
      dbDAT.Execute \"INSERT INTO ITEM \" & _
                    \"(\" & _
                    \"ITEM_ID, DESCRIPTION, COST_PRICE, LAST_IMPORT_DATE, LAST_IMPORT_BY\" & _
                    \") \" & _
                    \"VALUES (\" & _
                    \"\'\" & spltStr(0) & \"\',\" & _
                    \"\'\" & spltStr(1) & \"\',\" & _
                    \"\'\" & spltStr(2) & \"\',\" & _
                    \"\'\" & Format(Now, \"DD-MM-YYYY\") & \"\',\" & _
                    \"\'KIM_IMPORT\')\"

    Else
      Open App.Path & \"\\error log.txt\" For Append As #2
      Print #2, Format(Now, \"mm-dd-yyyyy\") & \" \" & Format(Now, \"HH:MM:SS\") & vbTab & \"Not valid import line:\" & strIn
      Close #2
    End If
   
  Loop
 
  Close #1
  Exit Function


- resten av det jeg skal legge inn i tabellen henter jeg fra en tekstfil. Alt går fint så lenge datofeltet i tabellen er av typen varchar. Men når jeg setter feltet i tabellen til datetime får jeg feilen:

The conversion of a char data type to a datetime data type resulted in an out of range datetime value.

når jeg tar en debug.print på now, får jeg: 18.09.2001 11:28:14

noen gode tips??
Avatar billede terry Ekspert
18. september 2001 - 11:41 #1
I have NOT looked closely at the code but DATES should be in the U.S format MM-DD-YYYY
Avatar billede dk_akj Nybegynder
18. september 2001 - 11:55 #2
hejsa

Jeg gemmer altid i number format.
Konverterer med disse funk.

\'**********************************
\'* Dato til tal
\'**********************************
Function Date2SQL(sDate)
    Date2SQL = Year(sDate) & Right(\"0\" & Month(sDate), 2) & Right(\"0\" & Day(sDate), 2)
End Function


\'**********************************
\'* Tid til tal
\'**********************************
Function Time2SQL(sdate)
    Time2SQL = hour(sDate) & Right(\"0\" & minute(sDate), 2) & Right(\"0\" & second(sDate), 2)
End Function


\'**********************************
\'* Tal til dato
\'**********************************
Function SQL2Date(sDate)
    SQL2Date = Right(sDate, 2) & \"-\" & Mid(sDate, 5, 2) & \"-\" & left(sDate,4)
End Function


\'**********************************
\'* Tal til tid
\'**********************************
Function SQL2Time(sTime)
    SQL2Time = Left(sTime, len(sTime) - 4) & \":\" & Mid(sTime, len(sTime) - 3, 2) & \":\" & right(sTime,2)
End Function

Avatar billede icamilla Nybegynder
18. september 2001 - 12:58 #3
thanks Terry! :o)
Avatar billede terry Ekspert
18. september 2001 - 13:01 #4
you\'re very welcome, and thanks too!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester