Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2009
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
insertar fecha con ado y Tquery

bueno el problema que tengo es que no guarda la fecha correcta en la base de datos por ejemplo si paso como parametro 10/11/2009 en la base de datos me inserta la fecha 1900-01-01 00:00:00.000, y no encuentro el problema alguien me puede ayudar
Código Delphi [-]
procedure Tfcontribuyente.BguardarClick(Sender: TObject);
 var wsap: string;
 var wnocontrato: string;
 var wnombre: string;
 var wpaterno: string;
 var wmaterno: string;
 var wlocalidad: string;
 var wcalle: string;
 var wnoext: integer;
 var wnoint: integer;
 var wcp: integer;
 var wfechare: TDate;
 var wtel: String;
 var wobs: string;
 var wanio:  string;
 var wmes: string;
 var wdia: string;
 var wsegundo: string;
{genero numero de contrato}
  wsap:='SAP-C';
  wanio:=FormatDateTime('yyyy',Date);
  wmes:=FormatDateTime('mm',Date);
  wdia:=FormatDatetime('dd',date);
  wsegundo:=formatdatetime('ss',Time);
  {tomo datos de campo}
  wnocontrato:=trim(wsap+wanio+wmes+wdia+wsegundo);
  wnombre:=trim(fcontribuyente.txtnombre.Text);
  wpaterno:=trim(fcontribuyente.txtpaterno.Text);
  wmaterno:=trim(fcontribuyente.txtmaterno.Text);
  wlocalidad:='SAN MIGUEL XALTIPAN';
  wcalle:= trim(fcontribuyente.txtcalle.Text);
  wnoext:=StrToint(fcontribuyente.txtext.Text);
  wnoint:=StrToint(fcontribuyente.txtint.Text);
  wcp:=StrToint('54090');
  wfechare:=Dfecha.Date;
  wtel:=trim(fcontribuyente.txttel.Text);
  wobs:=trim(fcontribuyente.txtobser.Text);
  {ejecucion}
  fmodulo.Qcontry.Close;
Código SQL [-]
with fmodulo.Qcontry do
    begin
     sql.Clear;
     sql.Add(' insert into sap_contrato (');
     Sql.Add(' nocontrato ,');    //1
     sql.Add(' nombre ,');//2
     sql.Add(' paterno ,');//3
     sql.Add(' materno ,');//4
     sql.Add(' localidad ,');//5
     sql.Add(' calle ,');//6
     sql.Add(' noext ,');//7
     sql.Add(' noint ,');//8
     sql.Add(' cp ,');//9
     sql.Add(' fecharegistro ,');//10
     sql.Add(' telefono ,');//11
     sql.Add(' observacio ');//12
     sql.Add(' ) values (');
     sql.Add(' '+QuotedStr(wnocontrato)+', ');//1
     sql.Add(' '+QuotedStr(wnombre)+', ');//2
     sql.Add(' '+QuotedStr(wpaterno)+', ');//3
     sql.Add(' '+QuotedStr(wmaterno)+', ');//4
     sql.add(' '+QuotedStr(wlocalidad)+', ');//5
     sql.Add(' '+QuotedStr(wcalle)+', ');//6
     sql.Add(' '+IntToStr(wnoint)+', ');//7
     sql.Add(' '+inttostr(wnoext)+', ');//8
     sql.Add(' '+Inttostr(wcp)+', '); //9
     sql.Add(' '+DateToStr(wfechare)+', ');//10
     sql.Add(' '+QuotedStr(wtel)+', ');//11
     sql.Add(' '+QuotedStr(wobs)+')');//12
     fcontribuyente.lvalida.Caption:=fmodulo.Qcontry.SQL.Text;
     try
      ExecSQL;
     except
      showmessage('Problemas con query ['+text+']');
     end;
    end;

aunque valido el texto del Tquery el muestra lo siguiente.
Código SQL [-]
 insert into sap_contrato (
 nocontrato ,
 nombre ,
 paterno ,
 materno ,
 localidad ,
 calle ,
 noext ,
 noint ,
 cp ,
 fecharegistro ,
 telefono ,
 observacio 
 ) values (
 'SAP-C2009111032', 
 'HORACIO', 
 'XOCHITEMOL', 
 'BAUTISTA', 
 'SAN MIGUEL XALTIPAN', 
 'REFORMA', 
 6, 
 6, 
 54090, 
 10/11/2009, 
 '53834328', 
 'INICIO DE CONTRATO')

en el text del tquery la fecha es: 10/11/2009 en la base de datos me inserta 1900-01-01 00:00:00.000

cual creen que sea el problema. espero me puedana yudar
Responder Con Cita
  #2  
Antiguo 10-11-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
¿Qué motor de base de datos usas? ¿Qué tipo de dato es ese campo? Si es Timestamp cámbialo por Date. También creo que deberías insertar la fecha entre comillas: '10/11/2009' y no 10/11/2009 a secas.
Responder Con Cita
  #3  
Antiguo 10-11-2009
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
Hola

el motor de base de datos es Sql server 2000, ya lo intente entre comillas y aun asi no funciona que me recomiendas?.

el tipo de dato es DateTime.

saludos espero tus comentarios y gracias por tomarte la molestia de contestar
Responder Con Cita
  #4  
Antiguo 11-11-2009
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
yo te recomendaría utilizar parametros, de esa forma no te tienes que preocupar por hacer conversiones de fechas a texto o viceversa, ni tampo te preocupas por el formato de la fecha o por las comillas:

Código Delphi [-]
with UnADOQuery do begin 
 If active then close; 
 SQL.Clear; 
 SQL.Add('Insert Into Tabla(Numero, Nombre, Fecha)'); 
 SQL.Add('Values(:Numero, :Nombre, :Fecha)'); 
 with Parameters do begin  
  ParamByName('Numero').Value := UnNumero.AsInteger; //asFloat, asCurrency, etc  
  ParamByName('Nombre').Value := UnTexto.AsString;  
  ParamByName('Fecha').Value := UnDateTimePicker.Date; 
 end; //parameters 
 ExecSQL;
end; //with



Y por cierto, sería mucho mejor utilizar un TADOQuery que un TQUery
__________________

Responder Con Cita
  #5  
Antiguo 11-11-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Prueba utilizando la función Convert de SQL Server y el formato ANSI en la fecha (YYYYMMDD):
Código:
convert(datetime, '20091110', 103)
Con el parámetro 103 te lo guardará como tú quieres: dd/mm/yyyy.
Responder Con Cita
  #6  
Antiguo 12-11-2009
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
GRacias

Gracias ya resolvi el problema pongo el codigo por si a alguien le sirve
Código Delphi [-]
with fmodulo.Qcontry do
    begin
     sql.Clear;
     sql.Add(' insert into sap_contrato (');
     Sql.Add(' nocontrato ,');    //1
     sql.Add(' nombre ,');//2
     sql.Add(' paterno ,');//3
     sql.Add(' materno ,');//4
     sql.Add(' ncompleto, '); //5
     sql.Add(' localidad ,');//6
     sql.Add(' calle ,');//7
     sql.Add(' noext ,');//8
     sql.Add(' noint ,');//9
     sql.Add(' cp ,');//10
     sql.Add(' fecharegistro ,');//111
     sql.Add(' telefono ,');//12
     sql.Add(' observacio, ');//13
     sql.add(' status ');//14
     sql.Add(' ) values (');
     sql.Add(' '+QuotedStr(wnocontrato)+', ');//1
     sql.Add(' '+QuotedStr(wnombre)+', ');//2
     sql.Add(' '+QuotedStr(wpaterno)+', ');//3
     sql.Add(' '+QuotedStr(wmaterno)+', ');//4
     sql.Add(' '+QuotedStr(wcompleto)+', '); //5
     sql.add(' '+QuotedStr(wlocalidad)+', ');//6
     sql.Add(' '+QuotedStr(wcalle)+', ');//7
     sql.Add(' '+IntToStr(wnoint)+', ');//8
     sql.Add(' '+inttostr(wnoext)+', ');//9
     sql.Add(' '+Inttostr(wcp)+', '); //10
     sql.Add(' '+QuotedStr(DateToStr(wfechare))+', ');//11
     sql.Add(' '+QuotedStr(wtel)+', ');//12
     sql.Add(' '+QuotedStr(wobs)+', ');//13
     sql.Add(' '+Inttostr(westatus) +')');//14
     try
      ExecSQL;
      application.MessageBox('Registro Almacenado Correctamente','',mb_ok + mb_iconinformation);
      fcontribuyente.txtcontrato.Text:='';
      fcontribuyente.txtnombre.Text:='';
      fcontribuyente.txtpaterno.Text:='';
      fcontribuyente.txtint.Text:='';
      fcontribuyente.txtext.Text:='';
      fcontribuyente.txtcalle.Text:='';
      fcontribuyente.txttel.Text:='';
      fcontribuyente.txtobser.Text:='';
     except
      showmessage('Problemas con query ['+text+']');
     end;
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
Problema insertar fecha Nomad SQL 17 17-01-2008 22:50:46
Insertar fecha desde NxDatePicker JcTaztoman Varios 0 26-09-2007 18:30:18
Como insertar fecha en un proyecto Adonis Varios 2 18-09-2007 03:52:02
Insertar/Modif en un TQuery sheng63 SQL 4 03-07-2007 14:50:23
Insertar texto de un Tmemo a un TQuery y a una Tabla mrmanuel SQL 3 06-07-2005 22:32:36


La franja horaria es GMT +2. Ahora son las 21:54:29.


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