Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-06-2007
Avatar de Nomad
Nomad Nomad is offline
Miembro
 
Registrado: abr 2007
Ubicación: Sarchi,Costa Rica
Posts: 107
Poder: 18
Nomad Va por buen camino
Smile Problema insertar fecha

Hola

Estoy insertando la fecha actual de la siguiente forma:
Código Delphi [-]
sql := 'Insert into FinalProduct(Id,PlantId,OrderId,PackDate,BagsURC,IdCus,IdVar) Values('
+FloatToStr(Inicio)+','+CmbPlanta.Items[CmbPlanta.itemindex]+
','+#39+'K017-3'+#39+','+formatdatetime('dd/mm/yyyy',date)+','
+NBolsas.Text+',107,169'+')';


Pero resulta que cuando voy a SQL server a revisar el dato que inserte, me aparece 01/01/1900, el tipo de datos en la base de datos es DATETIME.

Cuando corro el programa paso a paso, antes de enviar a insertar, reviso la cadena y la fecha va correctamente ej: 13/06/2007, pero sigue insertando 01/01/1900

Gracias y disculpen si redundo, pero he buscado y no encuentro nada como esto en el foro.

Gracias
__________________
Quisiera cambiar el mundo, pero no me dan el código fuente.

Última edición por vtdeleon fecha: 14-06-2007 a las 00:43:07.
Responder Con Cita
  #2  
Antiguo 13-06-2007
loxod loxod is offline
Miembro
 
Registrado: feb 2007
Ubicación: Mexico
Posts: 45
Poder: 0
loxod Va por buen camino
creo que te falta poner el campo fecha entre el caracter #39

sql := 'Insert into FinalProduct(Id,PlantId,OrderId,PackDate,BagsURC,IdCus,IdVar) Values('
+FloatToStr(Inicio)+','+CmbPlanta.Items[CmbPlanta.itemindex]+
','+#39+'K017-3'+#39+','+ #39 + formatdatetime('dd/mm/yyyy',date) + #39 +',' +NBolsas.Text+',107,169'+')';
Responder Con Cita
  #3  
Antiguo 13-06-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
si es ms sql server, no hay nada como la fecha en formato iso
YYYYMMDD para que insertes o manejes fechas, independientemente del lenguaje, notese que no lleva - o / es todo pegado
Responder Con Cita
  #4  
Antiguo 14-06-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código Delphi [-]
with TuDataSet do begin
SQL.Add('Insert into FinalProduct(Id, PlantId, OrderId, PackDate, BagsURC, IdCus, IdVar) ');
SQL.Add('Values('+FloatToStr(Inicio)+', '''+CmbPlanta.Items[CmbPlanta.itemindex]+''', ''K017-3'', ');
SQL.Add(''''+ formatdatetime('yyyy-mm-dd',date)+''', '''+NBolsas.Text+''',107,169) ');
...
end;

Código Delphi [-]
With TUDataset do begin
...
SQL.Add('Insert into FinalProduct(ID, PlantID, OrderID, PackDate, BagsURC, IdCus, IDVar)');
SQL.Add('Values( :vID, :vPlantID, :vOrderID, :vPackID, :vBagusURC, :vIDCus, :vIDVar)');
ParamByname('vID').AsFloat := Inicio;
ParamByName('vPlantID').AsString := cmbPlanta.Items[cmbPlanta.ItemIndex];
ParamByName('vOrderID').AsString := 'K017-3';
ParamByName('vPackID').AsDateTime := date;
ParamByName('vBagusURC').AsString := NBolsas.Text;
ParamByName('vIDCus').AsInteger := 107;
ParamByName('vIDVar').AsInteger := 169;
..
ExecSQL;
...
end; // with
__________________


Última edición por ContraVeneno fecha: 14-06-2007 a las 15:44:58.
Responder Con Cita
  #5  
Antiguo 14-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Para problemas de tipo fecha, lo mejor es usar "Paramentros" en el DataSet. De esa forma le dejas el trabajo sucio a otro.

Código Delphi [-]
sql := 'Insert into FinalProduct(Id,PlantId,OrderId,PackDate,BagsURC,IdCus,IdVar) Values(:Inicio, :Planta, :Orden, :Fecha, :Bolsas, 107,169)';
With Query1 do
begin
  Sql.Text:=sql;
  ParamByName('Inicio').AsFloat:=Inicio;
  ParamByName('Planta').AsString:=CmbPlanta.Items[CmbPlanta.itemindex];
  ParamByName('Orden').AsString:='K017-3';
  ParamByName('Fecha').AsDateTime:=Date;
  ParamByName('Bolsas').AsString:=NBolsas.Text;
  ExecSql;
end;
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 14-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Llegue 7 minutos tarde
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 14-06-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Si hombre, que cosas, últimamente me les he estado adelantando, jejeje
en fin, me queda una duda... ¿es necesario agregar los apóstrofes (') con el #39?

Código Delphi [-]
ParamByName('Orden').AsString:=#39+'K017-3'+#39;

Según entiendo, al utilizar parámetros, este se encargar de agregárlos. Por lo que la instrucción sería:
Código Delphi [-]
ParamByName('Orden').AsString:='K017-3';
Al menos así funciona en mi delphi 5 ó 10 .

---edito--
ya editaste, jeje
__________________


Última edición por ContraVeneno fecha: 14-06-2007 a las 00:57:45.
Responder Con Cita
  #8  
Antiguo 14-06-2007
Avatar de Nomad
Nomad Nomad is offline
Miembro
 
Registrado: abr 2007
Ubicación: Sarchi,Costa Rica
Posts: 107
Poder: 18
Nomad Va por buen camino
Perfecto

Gracias a todos... luego les cuento como me fue...
__________________
Quisiera cambiar el mundo, pero no me dan el código fuente.
Responder Con Cita
  #9  
Antiguo 14-06-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
Cita:
Empezado por ContraVeneno
en fin, me queda una duda... ¿es necesario agregar los apóstrofes (') con el #39?
Duda, el codigo Ascci #39 para que lo ponen, si es lo mismo utilizar '

Podrian explicarme este codigo, no lo entiendo?
Responder Con Cita
  #10  
Antiguo 14-06-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Lo ponen para que en el texto se coloque un apóstrofe y obtener el mismo resultado que se obtiene al usar la función "QuotedStr". En el caso de utilizar parámetros esto no es necesario.

Si no se utilizan parámetros, para obtener una cadena con apóstrofes (como regularmente se utilizan en una consulta en SQL Server), tienes tres opciones:
  • 'campo = '+#39+valor+#39 +','; Resultando en: campo = 'valor',
  • 'campo = '''+valor+''', '; Resultando en: campo = 'valor',
  • 'campo = '+QuotedStr(Valor)+','; Resultando en: campo = 'valor',
Donde la menos recomendable es la primera y la más recomendable es la tercera.
__________________


Última edición por ContraVeneno fecha: 14-06-2007 a las 15:43:29.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al insertar fecha en tabla DBF cocomo SQL 2 05-02-2007 17:24:46
Como insertar en un campo mediante un trigger la fecha actual del servidor kovaski Firebird e Interbase 2 04-10-2006 16:39:33
problema al insertar en bd access manoley23 SQL 12 20-07-2006 14:16:31
Asigna Fecha y Hora Automatico al Insertar Maury Manosalva OOP 3 31-10-2005 20:36:29
como insertar fecha y hora?? ebeltete SQL 2 02-08-2003 22:28:08


La franja horaria es GMT +2. Ahora son las 06:31:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi