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 10-01-2011
caifan_0883 caifan_0883 is offline
Miembro
 
Registrado: nov 2005
Ubicación: Los Mochis, Mexico
Posts: 42
Poder: 0
caifan_0883 Va por buen camino
Como actualizo los datos, si ademas realizo un calculo.

Que tal Compañeros foreros.

Ando con un pequeño detalle que me trae algo traumado por que no sale.

Lo que quiero realizar es que un campo PRECIO se actualize con respecto a otro campo pero aumentandole un porcentaje.

Ejemplo:

Precio 1: Valor de 10
Precio 2: Este valor lo quiero actualizar desde un Update. (Precio1*1.07)

Lo intente de 2 maneras, por AdoQuery y por AdoTables, sin ningun éxito en las 2.

Las tablas que estoy manejando son DBF.

Les pongo mis dos intentos tanto de AdoQuery y AdoTables, para que me ayuden o asesores como corregirlos. Desde ya muchas gracias.

ADOQUERY
Código:
  AdoQuery1.Active:=False;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Text:='UPDATE MGW10005 SET CPRECIO2=CPRECIO1*1.07';
  AdoQuery1.Active:=True;
El error que me marca aqui es: raised exception class EdatabaseError with message 'ADOQUERY1: Commandtext does not return a result set'


con AdoTable
Código:
       Adotable1.Edit;
         Adotable1.FieldByName('CPRECIO2').Value:=(AdoTable1.FieldByName('CPRECIO1').Value);
         Adotable1.Post;
El error que me marca aqui es: raised exception class EOleException with message [Microsoft][ODBC Visual Foxpro Driver] SQL: Statement too long.
__________________
Da conocimiento a los que no saben.
Responder Con Cita
  #2  
Antiguo 10-01-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
En el primero el problema es que estás utilizando "Active:=True" que se utiliza con clausulas SELECT, las que devuelven datos. Cómo este no es el caso, debes utilizar en su lugar el procedimiento llamado ExecSQL, que es para actualizaciones e inserciones de registro. Por lo anteriormente dicho, tu código debería quedar así:
Código Delphi [-]
  AdoQuery1.Active:=False;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Text:='UPDATE MGW10005 SET CPRECIO2=CPRECIO1*1.07';
  AdoQuery1.ExecSQL;

Saludos

PD.: El segundo problema está mucho más complicado. Parece que nace del controlador ODBC para Visual Foxpro.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 10-01-2011
caifan_0883 caifan_0883 is offline
Miembro
 
Registrado: nov 2005
Ubicación: Los Mochis, Mexico
Posts: 42
Poder: 0
caifan_0883 Va por buen camino
Mil Gracias...

Muchas gracias Chris, me solucionaste un dolorazo de cabeza...
Voy a tener mas cuidado, en los active de los querys...

Solucionado con lo de los querys, ya ni le muevo a los tables..

Mil Gracias...

Cita:
Empezado por Chris Ver Mensaje
En el primero el problema es que estás utilizando "Active:=True" que se utiliza con clausulas SELECT, las que devuelven datos. Cómo este no es el caso, debes utilizar en su lugar el procedimiento llamado ExecSQL, que es para actualizaciones e inserciones de registro. Por lo anteriormente dicho, tu código debería quedar así:
Código Delphi [-] AdoQuery1.Active:=False; AdoQuery1.SQL.Clear; AdoQuery1.SQL.Text:='UPDATE MGW10005 SET CPRECIO2=CPRECIO1*1.07'; AdoQuery1.ExecSQL;


Saludos

PD.: El segundo problema está mucho más complicado. Parece que nace del controlador ODBC para Visual Foxpro.
__________________
Da conocimiento a los que no saben.
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
Como actualizo con DataSetProvider? felixgo Conexión con bases de datos 1 11-01-2011 19:16:22
como actualizo el kernel? Robert01 Linux 2 02-11-2008 22:01:24
¿Como actualizo la BD desde un DBEdit? Torreblanca Conexión con bases de datos 4 23-06-2006 13:21:10
Como actualizo la informacion en un Twebbrowser maravert Internet 2 07-10-2004 19:25:04
¿como actualizo Qreport? Alfredo Impresión 2 08-03-2004 23:51:06


La franja horaria es GMT +2. Ahora son las 19:57:18.


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