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 27-08-2010
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
Talking error al insertar campo de tipo fecha con paramtero

resulta que lo que antes funcionaba ahora ya no este es el codigo que siemte habia usado.

Código Delphi [-]

with fmodulo.qry_registra do
   begin
     sql.Add('insert into volantes(usuario,recibe,volante,fecha_oficio)');
     sql.Add('values (:usuario,:recibe,:volante,:fecha_oficio);');
     Parameters.ParamByName('usuario').Value:=Trim(Fprincipal.wusuario);
     Parameters.ParamByName('recibe').Value:=wrecibio;
     Parameters.ParamByName('volante').Value:= woficio;
     Parameters.ParamByName('fecha_oficio').Value:= DateToStr(Fregistro.dtp_fecha_oficio.Date);
     try
      ExecSQL;
      application.MessageBox('Registro Almacenado Correctamente','',mb_ok + mb_iconinformation);
      exit;
     except
      on E:EOleException do
        begin
        //showmessage('Problemas con query ['+text+']');
        MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
        exit;
       end; 
     end;
   end;

bien pues ahora al ejecutar memuestra el siguiente error:
proyect volate.exe raised exception class EOLeException with message [Microsoft][ODBC SQL SERVER Driver] caracteristica opcional no implementada'. process stopeed. use step or run to coninue

ya probre con dateStro(y fecha)
con dateStr(format('dd-mm-yyy',fecha)


alguien tiene alguna idea
Responder Con Cita
  #2  
Antiguo 28-08-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

ese tipo de problemas es tipico cuando no se le define el tipo al parametro, deberias hacerlo asi:
Código Delphi [-]
with fmodulo.qry_registra do
   begin
     sql.Add('insert into volantes(usuario,recibe,volante,fecha_oficio)');
     sql.Add('values (:usuario,:recibe,:volante,:fecha_oficio);');
     Parameters.ParamByName('usuario').Value:=Trim(Fprincipal.wusuario);
     Parameters.ParamByName('recibe').Value:=wrecibio;
     Parameters.ParamByName('volante').Value:= woficio;
     Parameters.ParamByName('fecha_oficio').AsDate:= Fregistro.dtp_fecha_oficio.Date;
     try
      ExecSQL;
      application.MessageBox('Registro Almacenado Correctamente','',mb_ok + mb_iconinformation);
      exit;
     except
      on E:EOleException do
        begin
        //showmessage('Problemas con query ['+text+']');
        MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
        exit;
       end; 
     end;
   end;

Es una buena practica cuando usas parametros que definas los tipos asi te evitaras problemas, por ejemplo si guardas texto utilizas .AsString, si es un entero .AsInteger, si es un campo con decimales .AsFloat, si es fecha .AsDate o .AsDateTime, etc...

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 28-08-2010
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

mira realmente estoy utilizadon ADO, entonces la unica opcion que te da es

.value:=


que crees que pueda ser?
Responder Con Cita
  #4  
Antiguo 28-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Desconozco ADO, pero se supone que .value va a esperar el tipo que corresponda al campo, así que seguramente el problema sigue siendo que haces una conversión de date a string que no hace falta

Código:
Parameters.ParamByName('fecha_oficio').Value:=  Fregistro.dtp_fecha_oficio.Date;
Responder Con Cita
  #5  
Antiguo 28-08-2010
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
Talking hola casimiro

la verdad ya probe pasando el dato com tipo fecha y aun asi no lo acepta.

hice la prueba con la siguiente instruccion y funciona pero la verdad me queda duda del por que no puedo hacerlo con parametros.

Código Delphi [-]
sql.Add('INSERT INTO VOLANTES (');
   Sql.Add(' usuario,');   
   sql.Add(' recibe,');
   sql.Add(' volante,');
   sql.Add(' fecha_oficio');
   sql.Add(' ) values (');
   sql.Add(' '+QuotedStr(Fprincipal.wusuario)+', ');
   sql.Add(' '+QuotedStr(wrecibio)+', ');
   sql.Add(' '+QuotedStr(woficio)+', ');
   sql.Add(' '+QuotedStr(DateToStr(wfechaoficio))+')');

Última edición por microbiano fecha: 28-08-2010 a las 00:50:14. Razón: error en la captura
Responder Con Cita
  #6  
Antiguo 28-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo:
En primera instancia haces esto:
Código Delphi [-]
DateToStr(Fregistro.dtp_fecha_oficio.Date)
Y no funciona, y luego haces esto:
Código Delphi [-]
QuotedStr(DateToStr(wfechaoficio))
Y funciona.
No veo la relacion de los parametros, pero si veo una clara diferencia en cuanto a como llamas al campo fecha.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 28-08-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Cita:
Empezado por microbiano Ver Mensaje
la verdad ya probe pasando el dato com tipo fecha y aun asi no lo acepta.

hice la prueba con la siguiente instruccion y funciona pero la verdad me queda duda del por que no puedo hacerlo con parametros.

Código Delphi [-]sql.Add('INSERT INTO VOLANTES ('); Sql.Add(' usuario,'); sql.Add(' recibe,'); sql.Add(' volante,'); sql.Add(' fecha_oficio'); sql.Add(' ) values ('); sql.Add(' '+QuotedStr(Fprincipal.wusuario)+', '); sql.Add(' '+QuotedStr(wrecibio)+', '); sql.Add(' '+QuotedStr(woficio)+', '); sql.Add(' '+QuotedStr(DateToStr(wfechaoficio))+')');
Ese es el problema de utilizar sql.add, a mi en lo particular me gusta mas el sql.text:

Código Delphi [-]
with fmodulo.qry_registra do
   begin
     sql.Text:='insert into volantes(usuario,recibe,volante,fecha_oficio)'
             +' values (:usuario,:recibe,:volante,:fecha_oficio)';
     Parameters.ParamByName('usuario').Value:=Trim(Fprincipal.wusuario);
     Parameters.ParamByName('recibe').Value:=wrecibio;
     Parameters.ParamByName('volante').Value:= woficio;
     Parameters.ParamByName('fecha_oficio').Value:= Fregistro.dtp_fecha_oficio.Date;
     try
      ExecSQL;
      application.MessageBox('Registro Almacenado Correctamente','',mb_ok + mb_iconinformation);
      exit;
     except
      on E:EOleException do
       begin
        //showmessage('Problemas con query ['+text+']');
        MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
        exit;
       end; 
     end;
   end;
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #8  
Antiguo 28-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
A mi tambien me gusta mas usar Text por que lo veo mas claro, pero no tiene nada que ver el uso de ADD, add es add, adhiere el texto es lo mismo que usar text y +.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 28-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues ya que estamos ... yo tampoco usa .add, sólo uso .text
Y tampoco uso with, me confunde
Responder Con Cita
  #10  
Antiguo 28-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pues ya que estamos ... yo tampoco usa .add, sólo uso .text
Y tampoco uso with, me confunde
Ahora solo falta que nos digas:
Tampoco uso Windows, uso Linux.......
Saludos Amigo.
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 28-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Caral Ver Mensaje
Hola
Ahora solo falta que nos digas:
Tampoco uso Windows, uso Linux.......
Saludos Amigo.
jejeje... tampoco uso corbata
Responder Con Cita
  #12  
Antiguo 28-08-2010
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
Thumbs up Graciad

Considerare lo del . Text aunque lo haré el lunes jeje mi amada esposa rompió el cable de energía de la pc, tengo el honor de dos grandes caral y Casimiro un saludo amigos
Responder Con Cita
  #13  
Antiguo 28-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por microbiano Ver Mensaje
Considerare lo del . Text aunque lo haré el lunes jeje mi amada esposa rompió el cable de energía de la pc,
ja,ja... ¿y cómo se puede romper el cable?, espero que estuviese desconectado porque sería peligroso :S

Cita:
Empezado por microbiano
tengo el honor de dos grandes caral y Casimiro un saludo amigos
Pero Caral sí que es grande, yo a su lado soy un enano
Responder Con Cita
  #14  
Antiguo 29-08-2010
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
Talking Gracias

Si estaba desconectado pero bueno ahora a esperar para comprarlo.
Por otro lado que onda alguna otra opción
Del por que no puedo insertar con parámetros
Responder Con Cita
  #15  
Antiguo 30-08-2010
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
ya intente con sql.text

hola de acuerdo a los consejos hasta hora recibidos, resulta que ya proble con sql.text, y sigue sin funcionar me sigue sacando el error proyect volate.exe raised exception class EOLeException with message [Microsoft][ODBC SQL SERVER Driver] caracteristica opcional no implementada'. process stopeed. use step or run to coninue.

ahora bien en cuanto a caral por que dices que vevs una Caral me podrias decir cual es diferencia de como llamo a los parametros.

ahora bien es necesario declarar alguna libreria para poder usar parametros de tupo fecha, me refiero a que por ejemplo si quieres usar ADO, necesitas declarar ADOBD.

espero me explique.

por lo pronto voy a dejarlo funcionar de acuerdo a lo escribir el dia viernes.
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
Consulta en un campo tipo fecha Saul SQL 10 12-12-2011 02:39:44
Problema para insertar un dato de tipo fecha en SQL Server 2000 Alejandro73 SQL 13 21-10-2010 23:10:28
Insertar en un campo tipo BLOB un Variant adebonis Varios 1 23-03-2009 18:22:45
error al buscar campo tipo fecha fernando1973 SQL 2 18-05-2007 14:22:37
Error en update campo tipo fecha dridly SQL 1 24-09-2004 14:27:37


La franja horaria es GMT +2. Ahora son las 20:46:13.


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