Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2003
luisreg luisreg is offline
Miembro
 
Registrado: ago 2003
Ubicación: Mexico
Posts: 24
Poder: 0
luisreg Va por buen camino
Unhappy "Problema de actualizacion con update"

Hola amigos del club delphi

Tengo un problema de actualizacion de registros con la sentencia update que la realizo desde un query, el query lo llamo desde un datamodule para actualizar un campo llamado "DiasCred" que son lo dias de credito de la tabla Cliente.
El problema surge al modificar los dias de credito desde un combobox y ejecuto la accion desde un boton llamado "guardar".

Al ejecutar en tiempo de ejecucion me envia un error de excepcion de la BDE mas o menos asi:
Type mismatch in expression.'. Process stopped.

Pero por más que le busco no se cual sea mi error.

Este es el codigo para explicarme mejor dentro del boton:
Código:
procedure TfrmModificaCtes.guardaClick(Sender: TObject);
var
  diacred: integer; // variable para guardar los dias de credito
begin
  diacred:=0;
         // con este case al seleccionar el item del combobox "creditodia"
         // le paso a la variable diacred los dias de credito  
         case creditodia.ItemIndex of
          -1:  dcred:=0;
           0:  dcred:=0;
           1:  dcred:=8;
           2:  dcred:=10;
           3:  dcred:=15;
           4:  dcred:=21;
           5:  dcred:=30;
          end;

          // aqui mando llamar el query para actualizar el cambio
          with DMRegla.qryActualiza do
          begin
            SQL.Clear;
            SQL.Add('update Cliente set Diascred=: param1');
            SQL.Add('where id_cliente=: param2');

            Params[0].AsInteger:=dcred;
            Params[1].AsInteger:=StrToInt(numcte.Text);

            ExecSQL;
     
            MessageDlg('Los cambios fueron guardados !!', mtInformation,[mbOK],0);
          end;
end;
Agraceria su ayuda, plis.
Responder Con Cita
  #2  
Antiguo 19-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mira a ver si los parámetros los has declarado del tipo adecuado, porque el error que te arroja apunta a que algún parámetro no corresponde con el campo en el que se prentende guardar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 19-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Los parámetros los estas poniendo si el espacio entre el : y el nombre... ¿No?,
¿Ambos campos son numéricos en la base de datos?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 20-09-2003
luisreg luisreg is offline
Miembro
 
Registrado: ago 2003
Ubicación: Mexico
Posts: 24
Poder: 0
luisreg Va por buen camino
Post

marcozorrila
ya cheque los parametros y si corresponden con los campos ya que los tengo asi:
  • id_cliente tipo short
  • DiasCred tipo numerico
ah y la variable es dcred no diascred que es en donde guardo el valor del dia segun se haya seleccionado.

delphi.com.ar
si, los parametros los pongo despues de los : sin espacio solo que se me fue ese espacio, y los tipos de datos son numericos como se los mencione a mascozorrilla

este problema me sucedio despues de agregar el campo Diascred en la tabla cliente, y lo agregue desde el databse desktop. La tabla la tengo como maestro, pero no se si altere mal la estructura de la tabla, los demas campos que tengo si los puedo actualizar pero con este no he podido hacer que funcione.

a ver si sirve esto las tablas las cree con visio 2000 y de ahi las pase a paradox.

que me aconsejan que haga.
Responder Con Cita
  #5  
Antiguo 20-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
* id_cliente tipo short, quizás aquí esta el fallo, porque con este tipo el máximo que puedes alcanzar en números positivos es de 32767, como normalmente el código del cliente suele tener 7 dígitos.

4300001 por ejemplo si lo intentamos guardar en un campo de tipo Short, nos dará error.

Bueno ya nos dirás si estaba ahí el error.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 23-09-2003
luisreg luisreg is offline
Miembro
 
Registrado: ago 2003
Ubicación: Mexico
Posts: 24
Poder: 0
luisreg Va por buen camino
Lightbulb

Hola que tal amigos una disculpa por contestar tan tarde.

marcozorrila
ya cheque este dato y el problema no reside en este campo.

El problema lo encontre en el tipo de datos que estaba declarado como numerico en el campo Diascred y el parametro que lo tenia como entero lo puse como flotante y ya me funciono, es decir de esta manera:

Params[0].asfloat:=dcred

De esta manera me ha funcionado aunque crei que el tipo de datos numerico podria pasarle datos de parametros declarados como enteros pero no fue asi.

Agradezco su tiempo para ayudarme y gracias por su ayuda.

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


La franja horaria es GMT +2. Ahora son las 21:25:37.


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