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 Buscar Temas de Hoy Marcar Foros Como Leídos

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.561
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 11:43:19.


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