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 08-06-2008
calistian calistian is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
calistian Va por buen camino
ayuda por favor!!!

hola gente del foro, mi problema es el siguiente tengo un formulario donde doy de altas a socios osea guardo los datos en una base de datos q esta en Mysql y en el formulario tengo un campo donde se encuentra la fecha de ingreso q es de tipo date donde uso un TdateTimePicker pero cuando lo voy a registrar me sale el siguiente error:

debugger exception notificacion: proyect principal.exe raised exception class edbengine error with message 'operation no aplicable.'. process stoped use step or run to continue

el error creo q esta en la fecha xq la base de datos no admite el formato de la fecha de delphi o algo por el estilo je asi q por ahora toy usando una variable de tipo string para q me admita el campo de fechas y seguir con la alta de socios

la fecha de ingreso q esta en mi bd es de tipo date; como podria hacer cuando de de alta a un socio ingrese la fecha y se guarde en mi base de datos.

Código delphi [-]Código SQL [-]procedure talta_socios.preparo_altas_socios;
begin dm.consulta.Close; dm.consulta.SQL.Clear; dm.consulta.SQL.Add('insert into socios values(:id_socio,:ingreso,:nombre,:nacimiento,:dni,:domicilio,:telefono,:movil,:mail,:estado,: peso,:cuota,: observaciones)');
dm.consulta.ParamByName('id_socio').AsInteger:= strtoint(ed_id.Text);
dm.consulta.ParamByName('ingreso').AsDate:=fechaing.Date; dm.consulta.ParamByName('nombre').AsString:=ed_nombre.Text;
dm.consulta.ParamByName('nacimiento').Asstring:='2008/05/29';//lo q toy usando para q me admita en la base de datos
dm.consulta.ParamByName('dni').AsInteger:=strtoint(ed_dni.Text);
dm.consulta.ParamByName('domicilio').AsString:=ed_domicilio.Text;
dm.consulta.ParamByName('telefono').AsInteger:=strtoint(ed_telefono.Text);
dm.consulta.ParamByName('movil').AsInteger:=strtoint(ed_movil.Text);
dm.consulta.ParamByName('mail').AsString:=ed_mail.Text;
dm.consulta.ParamByName('estado').AsString:=ed_estado.Text;
dm.consulta.ParamByName('peso').AsString:=ed_peso.Text;
dm.consulta.ParamByName('cuota').AsFloat:=strtofloat(ed_cuota.Text);
dm.consulta.ParamByName('observaciones').AsString:=ed_observaciones.Text;
end;
Responder Con Cita
  #2  
Antiguo 08-06-2008
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 96
Poder: 20
CrazySoft Va por buen camino
prueba con

Código Delphi [-]
dm.consulta.ParamByName('ingreso').AsDateTime:=fechaing.Date;
dm.consulta.ParamByName('nacimiento').AsDateTime:=strtodate('2008/05/29');

Última edición por CrazySoft fecha: 08-06-2008 a las 19:22:15.
Responder Con Cita
  #3  
Antiguo 08-06-2008
calistian calistian is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
calistian Va por buen camino
continua el poblema

hola CrazySoft probe con lo q me diste pero el problema es el mismo me da el mismo error: operacion no aplicable.
Responder Con Cita
  #4  
Antiguo 08-06-2008
calistian calistian is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
calistian Va por buen camino
Continua el problema

Código:
procedure talta_socios.preparo_altas_socios;
begin
  dm.consulta.Close;
  dm.consulta.SQL.Clear;
  dm.consulta.SQL.Add('insert into socios values(:id_socio,:ingreso,:nombre,:nacimiento,:dni,:domicilio,:telefono,:movil,:mail,:estado,:peso,:cuota,:observaciones)');
  dm.consulta.ParamByName('id_socio').AsInteger:= strtoint(ed_id.Text);
  dm.consulta.ParamByName('ingreso').AsDate:=fechaing.DateTime;
//donde fechaing es el nombre del TDateTimePicker 
  dm.consulta.ParamByName('nombre').AsString:=ed_nombre.Text;
  dm.consulta.ParamByName('nacimiento').Asstring:='2008/05/29';
 //'2008/05/29' es la variable q uso para q se carge por ahora en mi Bd en  el edit no introdusco nada
  dm.consulta.ParamByName('dni').AsInteger:=strtoint(ed_dni.Text);
  dm.consulta.ParamByName('domicilio').AsString:=ed_domicilio.Text;
  dm.consulta.ParamByName('telefono').AsInteger:=strtoint(ed_telefono.Text);
  dm.consulta.ParamByName('movil').AsInteger:=strtoint(ed_movil.Text);
  dm.consulta.ParamByName('mail').AsString:=ed_mail.Text;
  dm.consulta.ParamByName('estado').AsString:=ed_estado.Text;
  dm.consulta.ParamByName('peso').AsString:=ed_peso.Text;
  dm.consulta.ParamByName('cuota').AsFloat:=strtofloat(ed_cuota.Text);
  dm.consulta.ParamByName('observaciones').AsString:=ed_observaciones.Text;
end;
creo q se deberia hacer un cambio de posocion con la fecha por ej en el TDateTimePicker el formato de fecha es (dd/mm/yyyy) y lo q se tendria q hacer es (yyyy/mm/dd) para q se agrege en la bd de mysql por q creo q mysql la fecha esta en formato de estado unidos algo por el estilo pero no se como hacerlo
Responder Con Cita
  #5  
Antiguo 09-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola, yo creo que lo que le hace falta es indicarle los campos que se van a insertar.....

Código SQL [-]

INSERT INTO socios(id_socio, ingreso, nombre, nacimiento, dni, domicilio, telefono, movil, mail, estado, peso, cuota, observaciones)
VALUES(:id_socio, :ingreso, :nombre, :nacimiento, :dni, :domicilio, :telefono, :movil, :mail, :estado, :peso, :cuota, :observaciones)

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 09-06-2008 a las 04:29:28.
Responder Con Cita
  #6  
Antiguo 09-06-2008
Avatar de matabyte
matabyte matabyte is offline
Miembro
 
Registrado: ene 2008
Ubicación: Kyoto, Japon
Posts: 177
Poder: 17
matabyte Va por buen camino
Buenas.

Lo que tienes que hacer es cambiar el formato de la fecha a la americana, intenta declarar el tipo de formato de fecha a tipo americano y luego a convertir la fecha. A parte, intenta ingresar el campo de fecha como una cadena y no como tipo AsDate, ya que así te ahorrarás muchos problemas.:

Código Delphi [-]
 ShortDateFormat:='yyyy/mm/dd';

 dm.consulta.ParamByName('ingreso').AsString:=DateToStr(fechaing.DateTime);

A parte, como dice [egostar], te falta de poner la definición de los campos de la tabla. Yo mejor pondría toda la sintaxis en el comando de SQL y olvidarse del "ParamByName"

Última edición por matabyte fecha: 09-06-2008 a las 05:16:10.
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
Ayuda por favor... BuRtOn Varios 62 07-03-2008 03:21:25
AYUDA por favor!!! Melcv Varios 2 28-06-2006 21:19:35
Ayuda por favor yusnerqui Internet 8 23-04-2004 09:26:43
ayuda por favor haffo Varios 6 23-10-2003 03:50:33
Ayuda por favor jtellof Conexión con bases de datos 4 08-09-2003 21:56:24


La franja horaria es GMT +2. Ahora son las 16:37:42.


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