Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2020
igamerpc igamerpc is offline
Miembro
 
Registrado: feb 2020
Posts: 53
Poder: 5
igamerpc Va por buen camino
Problema registro vacio

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  archivo: String;
  cod1  : Cardinal;
  nom: string;
begin
FCountRec:=0;
While Not MOD.Tabla2.Eof do
      Begin
        cod1:=MOD.Tabla2.fieldbyName('CODIGO').Value;
        nom:=MOD.Tabla2.fieldbyName('NOMBRE').Value;
Insertar_Registro_Tabla_1('archivo', cod1, FCountRec, Sender);
        CFG.MOD.Tabla2.Next;
   end;
memo1.lines.add(format('Se insertaron %d registros',[FCountRec]));
end;

procedure TForm1.Insertar_Registro_Tabla_1(NTabla:String; cod1:cardinal; nom:string; var aCont: Integer; Sender: TObject);
begin
   If MOD.Conexion.Connected =False Then
       MOD.Conexion.Connected:=True;

MOD.Tabla1.TableName:=NTabla;
    MOD.Tabla1.Active:=True;

 MOD.MyCommand1.SQL.Clear;
    MOD.MyCommand1.sql.Add('INSERT INTO '+NTabla+'(CODIGO,NOMBRE) VALUES(:Codigo,:Nombre)');
    MOD.MyCommand1.ParamByName('CODIGO').Value:=cod1;
    MOD.MyCommand1.ParamByName('NOMBRE').Value:=nom;
Try
    MOD.MyCommand1.Execute;
    Inc(aCont);

   Except

End;
   MOD.Tabla1.Refresh;
end;
Cuando la tabla viejo tiene registros vacios. Al insertar a la tabla nuevo se para.

¿Como se hace cuando el registro vacio se debe ignorar para no insertar el registro?

Última edición por Casimiro Notevi fecha: 05-03-2020 a las 13:02:13.
Responder Con Cita
  #2  
Antiguo 05-03-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
...
Responder Con Cita
  #3  
Antiguo 05-03-2020
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Revisa que tengan datos. Algo así:
Código Delphi [-]
While Not MOD.Tabla2.Eof do
Begin
   cod1:=MOD.Tabla2.fieldbyName('CODIGO').Value;
   nom:=MOD.Tabla2.fieldbyName('NOMBRE').Value;
// condicional que solo graba cuando tienes algo
   if (cod1<>'')and(nom<>'') then
     Insertar_Registro_Tabla_1('archivo', cod1, FCountRec, Sender);
   CFG.MOD.Tabla2.Next;
end;
Responder Con Cita
  #4  
Antiguo 05-03-2020
igamerpc igamerpc is offline
Miembro
 
Registrado: feb 2020
Posts: 53
Poder: 5
igamerpc Va por buen camino
Cuando una fila que esta vacia o null se para el programa. No salta la fila.
Lo comprobe que tu hiciste y me sale eso:

Me sale error "Could not converter variant of type (Null) into type (String)".
y tambien se para el programa.
Responder Con Cita
  #5  
Antiguo 05-03-2020
igamerpc igamerpc is offline
Miembro
 
Registrado: feb 2020
Posts: 53
Poder: 5
igamerpc Va por buen camino
Creo ya he conseguido era eso:
NullStrictConvert:=false;
Responder Con Cita
  #6  
Antiguo 06-03-2020
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Cita:
Empezado por igamerpc Ver Mensaje
Cuando una fila que esta vacia o null se para el programa. No salta la fila.
Lo comprobe que tu hiciste y me sale eso:

Me sale error "Could not converter variant of type (Null) into type (String)".
y tambien se para el programa.
Cierto, simplemente añadí una condición a tu código para indicar que así se evita ese error. Para ser estrictos creo que esta es la condición más adecuada, aunque yo en estos casos los datos de entrada ya los cribo antes de llegar aquí, en la propia query (pocas veces trabajo directamente con tablas).
Código Delphi [-]
While Not MOD.Tabla2.Eof do
Begin
// condicional que solo graba cuando tienes algo
   if (not MOD.Tabla2.fieldbyName('CODIGO').isNull)and(not MOD.Tabla2.fieldbyName('NOMBRE').isNull) then
   begin
      cod1:=MOD.Tabla2.fieldbyName('CODIGO').Value;
      nom:=MOD.Tabla2.fieldbyName('NOMBRE').Value;
      Insertar_Registro_Tabla_1('archivo', cod1, FCountRec, Sender);
   end;
   CFG.MOD.Tabla2.Next;
end;
Responder Con Cita
  #7  
Antiguo 09-03-2020
igamerpc igamerpc is offline
Miembro
 
Registrado: feb 2020
Posts: 53
Poder: 5
igamerpc Va por buen camino
Smile

Perfecto esta me funciono bien.
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
Saber si el registro de un dgbrid tiene algun campo vacio Vales08 Varios 9 17-11-2011 13:40:29
registro vacio not null..!! negrokau Varios 10 27-08-2011 16:44:55
problema con grid vacio jfadelphi Varios 5 26-03-2009 14:04:28
StringGrid y el problema del Vacio... papulo Varios 7 09-09-2005 12:58:18
Registro Vacio en un DBGrid si existe GENERATOR gluglu Conexión con bases de datos 1 08-02-2005 12:01:59


La franja horaria es GMT +2. Ahora son las 12:29:45.


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