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 03-10-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
try y catch en una consulta

Como puedo utilizar el try y catch en una consulta sql para actualizar
Ejemplo:
como lo podria implementar en este Query
Código Delphi [-]
 with dm.qadulto do begin
      close;
        sql.Clear;
      with Params.CreateParam(ftMemo,'x1',ptUnknown)do
        asMemo := memo5.Text;
      sql.add('update nino set pad=:x1');
      SQL.Add('WHERE cve_cte=:cv');
      parambyname('cv').Value:=cni;
      execsql;
    end;

Bueno espero me puedan ayudar, no se nada sobre estos metodos en delphi, lo que mas problema me causa es la variable donde se almacena el error
Responder Con Cita
  #2  
Antiguo 03-10-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Puedes hacerlo así:

Código Delphi [-]
with dm.qadulto do
  try
    Close;
    SQL.Clear;
    Params.CreateParam(ftMemo, 'x1', ptnknown).AsMemo := memo5.Text;
    SQL.Add('update nino set pad = :x1');
    SQL.Add('where cve_cte = :cv');
    ParamByName('cv').Value := cni;
    ExecSQL
  except
    ShowMessage('Ocurrió un error actualizando datos')
  end


Saludos...

Última edición por maeyanes fecha: 03-10-2007 a las 17:49:47.
Responder Con Cita
  #3  
Antiguo 03-10-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
oies puse el codigo asi como lo escribiste y me marca error no compila....
Responder Con Cita
  #4  
Antiguo 03-10-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Y que error te marca?

El código es el mismo que tu pusiste, lo único que hice fue meterlo dentro de un try..except...


Saludos...
Responder Con Cita
  #5  
Antiguo 03-10-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
me marca Procedure no found
Responder Con Cita
  #6  
Antiguo 03-10-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Y cual es el procedimiento que no encuentra?

Te debe decir el nombre...

Mayormente cuando no se encuentra un procedimiento es por que falta agregar la unidad donde se encuentra este al uses de la unidad donde lo estás llamando...
Responder Con Cita
  #7  
Antiguo 04-10-2007
Avatar de rodrigodeoz
rodrigodeoz rodrigodeoz is offline
Miembro
 
Registrado: sep 2007
Posts: 30
Poder: 0
rodrigodeoz Va por buen camino
en el Except me marca ese error
Responder Con Cita
  #8  
Antiguo 04-10-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Prueba a poner en el USES
Dialogs

Código Delphi [-]
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ...
Responder Con Cita
  #9  
Antiguo 04-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿Esto no funciona?
Código Delphi [-]
 with dm.qadulto do begin
      close;
        sql.Clear;
      sql.add('update nino set pad=:x1');
      SQL.Add('WHERE cve_cte=:cv');
      parambyname('x1').asString := memo5.Text;
      parambyname('cv').Value:=cni;  // intenta usa AsInteger, AsString... según el tipo de "cve_cte"
      execsql;
    end;

Lo digo porque al asignar el sql, dephi crea los parámetros.
Al usar "parambyname('x1').asString" delphi asigna el tipo de parámetro (ftMemo, ftInteger, etc).

¿de qué tipo es el campo "pad" ? ¿Memo, char, varchar?
Intuyo que hay una confusión entre el tipo de campo de la base de datos y el control usado para ver y modificar el texto.

Si en la base de datos tienes un campo de tipo Memo, en el sql tendrás que usar un parambyname('x1').AsMemo.

Si en la base de datos tienes un campo de tipo varchar, char(200), etc, entonces debes usar parambyname('x1').AsString

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 05:31:17.


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