Otra de ADO (Puro) Fechas

Post Reply
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Otra de ADO (Puro) Fechas

Post by leandro »

Amigos tengo el siguiente problema:

Estoy tratanto de agregar un registro a una tabla en mssql. La tabla tiene un campo de tipo [smalldatetime] es una fecha con la hora queda de la siguiente manera: 01/01/2008 12:00:00 a.m.

El problema es que intentanto subir en todos los formatos de fecha

fec:='01/01/2008 12:00:00 a.m.'
fec:='01/01/2008 00:00'
fec:='01/01/08 00:00'

La unica forma de lo sube es asi:

fec:='01/01/2008'

Pero cuando miro la fecha en la tabla me queda una fecha que no es:

"01/01/1900 12:00:00 am"

Alguien me puede indicar como devolver el valor fecha.

El Codigo es el siguiente:

Code: Select all


SELE tbl_lin
Dbgotop()
Do while !Eof()

  Cod:=alltrim(tbl_lin->lin_codigo)
  Nom:=alltrim(tbl_lin->lin_nombre)
  Act:=Valor(tbl_lin->lin_activo)
  Con:=Valor(tbl_lin->lin_conexi)
  Emp:=alltrim(tbl_lin->lin_nomemp)
  Equ:=alltrim(tbl_lin->lin_equipo)
  Ope:=alltrim(tbl_lin->lin_codope)
  Ver:=dtoc(tbl_lin->lin_versio)
  Fec:=dtoc(tbl_lin->lin_fecope)
  Pro:=alltrim(tbl_lin->lin_proreg)
  Rem:=alltrim(tbl_lin->LIN_NOMREM)

 cCommandSql	:= "INSERT INTO MAELIN (lin_codigo,lin_nombre,lin_activo,lin_versio) VALUES ('"+Cod+"','"+Nom+"','"+Act+"',"+Fec+")"


  TRY
    oCon:Execute(cCommandSql)
  CATCH oError
    MsgInfo("El registro no pudo ser insertado")
  END

  SELE tbl_lin
  Skip
Enddo
De antemano Gracias
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
jcaro
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Post by jcaro »

Leandro:

Recuerdo que RF, hablo de un tipo de dato datetime que tiene el xharbour. A lo mejor eso te puede ayudar.

Saludos,
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Leandro amigo,

lamento decirte que ado no tiene soporte para fecha y hora (datetime)

yo ya estuve batallando con una tabla de acces,

sin llegar a ninguna solucion,

o puede ser el compilador xharbour el que no lo soporta,

pero no hay una solucion de momento,

los gurues en este foro no habla mucho sobre este tema..

realmente no sabemos si el el problema es de ADO o xhb.


saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
ricardog
Posts: 149
Joined: Tue Oct 11, 2005 3:10 pm

Post by ricardog »

Leandro:


Convierte la fecha a modo caracter, antes de actualizar la Tabla:

cFecha := "'"+StrZero( Year( Date() ),4 )+;
StrZero( Month( Date() ),2 )+;
StrZero( Day( Date() ),2 )+"'"

Encierra la cFecha con la "apostrofes" ( NO DOBLES COMILLAS ), y enviala a grabar.

Tiene que grabar la fecha correcta, y los datos de la hora en 00:00:.....


Saludos
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

Hazlo asi:

cFecha := DTOC2(Date()) + " " + SUBSTR(TIME(),1,8)

....
cInsert := "INSERT INTO prueba SET fecha = '" + cFechaHora + "'"
oCon:Execute(cInsertl)
....
...
..
.


Function DTOC2(dDate) // Harbour to MySQL
local cDate
SET (_SET_DATEFORMAT, "yyyy-mm-dd")
If EMPTY(dDate)
cDate := " - - " // aqui son 4 espacion para el año
Else
cDate := DTOC(dDate)
EndIf
Set( _SET_DATEFORMAT, "dd/mm/yyyy" )
Return(cDate)
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Post by leandro »

Gracias a todos por las respuestas y por la ayuda prestada.

Viejo Willi :lol:

Era lo que necesitaba. :D

Muchas Gracias
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Post Reply