Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   urgente problemas con insert into y datos de dipo date (https://www.clubdelphi.com/foros/showthread.php?t=38002)

vero_17jm 29-11-2006 08:38:28

urgente problemas con insert into y datos de dipo date
 
hola tenga la tabla e_pedido conlso campos cve_pd de tipo alfabetico cve_pr de tipo alfabetico t Fecha_p de tipo date el codigo es el sig.

query2.SQL.Clear;
query2.SQL.Add('insert into e_pedido (Cve_Pd,Cve_Pr,Fecha_P)VALUES('+
''''+MaskEdit3.Text+''''+','+
''''+MaskEdit1.Text+''''+','+
DateToStr(DateTimePicker1.date)+')');
ShowMessage(Query2.Sql.Text);
query2.ExecSQL;

pero me marca un error de tipos me podrian explicar como es la sintaxis para los datos de tipo date

Héctor Randolph 29-11-2006 09:35:48

Sugerencia
 
Hola vero_17jm

Tal vez convenga más en este caso utilizar parámetros

Código Delphi [-]
query2.SQL.Clear;
query2.SQL.Add('insert into e_pedido (Cve_Pd,Cve_Pr,Fecha_P) VALUES(:Texto1, :Texto2,:Fecha1)'
query2.ParamByName('Texto1').AsString:=MaskEdit3.Text;
query2.ParamByName('Texto2').AsString:=MaskEdit1.Text;
query2.ParamByName('Fecha1').AsDateTime:=DateTimePicker1.date;
query2.ExecSQL;

Para indicar que se trata de parámetros colocas el símbolo : (dos puntos) antes del nombre.

Saludos.

P.D. No es necesario poner la palabra urgente en todos tus mensajes, por favor lee la guía de estilo

ElDioni 29-11-2006 15:07:05

Código Delphi [-]
query2.SQL.Clear;
query2.SQL.Add('insert into e_pedido (Cve_Pd,Cve_Pr,Fecha_P)VALUES('+
quotedstr(MaskEdit3.Text)+','+
quotedstr(MaskEdit1.Text)+','+
quotedstr(DateToStr(DateTimePicker1.date))+')');
ShowMessage(Query2.Sql.Text);
query2.ExecSQL;

Bender 29-11-2006 18:58:22

Si estas usando SQL Server yo uso una funcion para convertir las fechas
Código Delphi [-]
function MSSQLFormatDate(ADate : TDateTime) : String ;
var
  dd,mm,yy : Word ;
  hh,mn,ss,ms : Word ;
  str : String ;

  dia, mes , ano : String ;
  hora, minuto, segundo, milisegundo : String ;
const
  Comilla = '''' ;
begin

  DecodeDateTime(ADate,yy,mm,dd,hh,mn,ss,ms);

  dia := inttostr(dd);
  mes := inttostr(mm);
  ano := inttostr(yy);
  hora := inttostr(hh);
  minuto := inttostr(mn);
  segundo := inttostr(ss);
  milisegundo := IntToStr(ms) ;

  str := '' +
  ' CONVERT(DATETIME, ' +
  Comilla + dia + '-' + mes + '-' + ano +
  ' ' + hora + ':' + minuto + ':' + segundo + ':' + milisegundo + Comilla +
  ',103)' ;


  Result := str ;

end;

Código Delphi [-]
query2.SQL.Clear;
query2.SQL.Add('insert into e_pedido (Cve_Pd,Cve_Pr,Fecha_P)VALUES('+
quotedstr(MaskEdit3.Text)+','+
quotedstr(MaskEdit1.Text)+','+
MSSQLFormatDate(DateTimePicker1.date)+')');
ShowMessage(Query2.Sql.Text);
query2.ExecSQL;


La franja horaria es GMT +2. Ahora son las 22:19:39.

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