Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-12-2008
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Problema con Procedimiento

Hola:

Tengo el siguiente procedimiento al cual le paso como parametros dos ADOTables y me esta dando un error (Informacion de columna clave insuficiente o incorrecta; demasiadas filas afectadas por la actualizacion) realmente no se el pq... me podrian ayudar con esto ?

Código Delphi [-]
procedure TMain.UpdateNames(TOrig, TDest: TADOTable; Flag: Integer);
var
Codigo: string;
begin
ShowProgress.Show;
ShowProgress.Caption:='Actualizando nombres...';
ShowProgress.ProgressBar1.Position:=0;
ShowProgress.ProgressBar1.Max:= TDest.RecordCount;
TDest.First;
while not TDest.Eof do
begin
TOrig.First;
 while not TOrig.Eof do
 begin
  If Flag = 0 Then
   Codigo:= '0' + TOrig.FieldByName('Codigo').AsString
  else
   Codigo:= TOrig.FieldByName('Codigo').AsString;
    If ((TDest.FieldByName('Codigo').AsString = Codigo)) and ((TDest.FieldByName('Nombre').AsString <> TOrig.FieldByName('Nombre').AsString) or (TDest.FieldByName('Direccion').AsString <> TOrig.FieldByName('Direccion').AsString))Then
     begin
      TDest.Edit;
      If TDest.FieldByName('Direccion').AsString <> TOrig.FieldByName('Direccion').AsString Then
         TDest.FieldByName('Direccion').AsString:= TOrig.FieldByName('Direccion').AsString;
      If TDest.FieldByName('Nombre').AsString <> TOrig.FieldByName('Nombre').AsString Then
         TDest.FieldByName('Nombre').AsString:= TOrig.FieldByName('Nombre').AsString;
       TDest.Post;
      break;
     end
    else
     TOrig.Next;
 end;
ShowProgress.ProgressBar1.Position:= TDest.RecNo;
ShowProgress.ProgressBar1.Repaint;
ShowProgress.Refresh;
Main.Repaint;
TDest.Next;
end;
TDest.First;
TOrig.First;
ShowProgress.Close;
end;

La llamada al procedimiento es

Código Delphi [-]
Main.UpdateNames(Main.ADOExtensiones_Libres, Main.ADOEstad_Table,0);

Saludos y gracias
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #2  
Antiguo 10-12-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
Ese problema se da cuando tienes 2 o más filas con los mismos datos y el motor de SQL no sabe cual afectar. Puede ser mejor usar una sentencia SQL para actualizar los valores
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 10-12-2008
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Tienes alguna idea de como seria la sentencia SQL ?

Saludos
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #4  
Antiguo 10-12-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
si nos proporcionas el DDL de tus tablas podríamos ayudarte con la consulta de actualización. Nos ayudará de igual manera que nos indiques el motor de base de datos que utilizas.

saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #5  
Antiguo 10-12-2008
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Yo uso ADOTables con Delphi 6.0 y la BD es una mdb de Access

Saludos
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
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
problema con procedimiento almacenado aladelta Firebird e Interbase 7 14-02-2007 01:52:34
Problema con procedimiento Sotrono Varios 1 19-01-2005 19:36:21
problema con procedimiento almacenado Choclito Firebird e Interbase 2 04-11-2004 20:58:46
Problema con procedimiento almacenado juziel Firebird e Interbase 4 20-09-2004 18:31:41
Problema con un procedimiento almacenado Markoz Firebird e Interbase 1 08-07-2003 11:47:20


La franja horaria es GMT +2. Ahora son las 11:13:06.


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