Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2015
cipce22 cipce22 is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 22
Poder: 0
cipce22 Va por buen camino
Unhappy falló

Cita:
Empezado por ecfisa Ver Mensaje
Hola cipce22.

Otra consulta: ¿ Existe algún TDataModule en Auto-create forms o por código, cuya creación pudiera estar en órden posterior al uso de la función ?

Saludos

Al mover el orden una de mis forms no se logra mostrar y me muestra violacion de acceso, el form que lo provoca es el ultimo en ser mostrado y el ultimo en la lista ¿así debe ser?

el error de el update continua
Responder Con Cita
  #2  
Antiguo 21-07-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Yo revisaría esta parte:
Código Delphi [-]
SetLength(Array_idmatriculas_incorr, cont_arr);
Array_idmatriculas_incorr[cont_arr]:=dm.IBQuery1.FieldByName('id').AsInteger;
inc(cont_arr,1);
Así a simple vista diría que tienes el problema ahí.
Responder Con Cita
  #3  
Antiguo 21-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola cipce22.

Opino igual que Casimiro, debería ser:
Código Delphi [-]
...
 cont_arr := 0; // <-
 ....
 begin
      SetLength(Array_idmatriculas_incorr, cont_arr + 1 ); // <-

      Array_idmatriculas_incorr[cont_arr]:=dm.IBQuery1.FieldByName('id').AsInteger;
      inc(cont_arr,1);
  ...

También lo podrías escribir de este modo (ahorrándote el contador):
Código Delphi [-]
...
  while not dm.IBQuery1.eof do
  begin
    if  not (dm.IBQuery1.FieldByName('id').AsInteger=campo_id_oficial)  then
    begin
      SetLength(Array_idmatriculas_incorr, Length(Array_idmatriculas_incorr) + 1 );
      Array_idmatriculas_incorr[High(Array_idmatriculas_incorr)]:= dm.IBQuery1.FieldByName('id').AsInteger;
    end;
    dm.IBQuery1.Next;
  end;
...

Otra alternativa es darle al arreglo dinámico, el tamaño de una sola vez:
Código Delphi [-]
...
  cont_arr := 0;
  SetLength(Array_idMatriculas_incorr, dm.IBQuery1.RecordCount ); // <-
  while not dm.IBQuery1.eof do
  begin
    if  not (dm.IBQuery1.FieldByName('id').AsInteger=campo_id_oficial)  then
    begin
      Array_idmatriculas_incorr[cont_arr]:= dm.IBQuery1.FieldByName('ID').AsInteger;
      Inc(cont_arr, 1);
    end;
    dm.IBQuery1.Next;  
  ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-07-2015 a las 19:04:50.
Responder Con Cita
  #4  
Antiguo 21-07-2015
cipce22 cipce22 is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 22
Poder: 0
cipce22 Va por buen camino
Funcionó

¡Funcionó! gracias


De alguna manera el cambiar este ciclo ya no generó la violación de acceso, ¿por qué la provocaba?

no me mostraba ningun error ni mostraba alguna excepcion cuando lo ponia en un bloque try

si alguien me explica esto ultimo, seria perfecto para poder evitar este error en el futuro, que para mi, es casi inexplicable
Agradezco a todos la ayuda
Responder Con Cita
  #5  
Antiguo 21-07-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por cipce22 Ver Mensaje
no me mostraba ningun error ni mostraba alguna excepcion cuando lo ponia en un bloque try
Eso te pasa por no poner el código real que estás usando.
Lo habríamos visto al momento.
Responder Con Cita
  #6  
Antiguo 22-07-2015
cipce22 cipce22 is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 22
Poder: 0
cipce22 Va por buen camino
Talking Apuntado

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Eso te pasa por no poner el código real que estás usando.
Lo habríamos visto al momento.
Tienes razón , la proxima vez lo posteare completo en caso de no ser tan grande, aunque sigo con la duda de cual es la razon para que ese ciclo me generara la violacion
Responder Con Cita
  #7  
Antiguo 22-07-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pues porque intentaba acceder a una posición del array que no existe.
Ejemplo: tienes un array de 4 posiciones: array[0..3] y tecleas array[5] = "hola"
No existe la posición 5.
Responder Con Cita
  #8  
Antiguo 22-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola cipce22.
Cita:
Empezado por cipce22 Ver Mensaje
..., aunque sigo con la duda de cual es la razon para que ese ciclo me generara la violacion
El motivo es el que te comenta Casimiro, en tu caso en concreto sucede por:
Código Delphi [-]
...
var
  v     : array of Integer;
  con, i: Integer;
begin                   
  con := 1;             // con es igual a: 1  
  for i := 1 to 5 do
  begin
    SetLength(v, con);  // se crea un lugar que es: v[0]
    v[con]:= i;         //  ¡ Error, v[1] todavía no ha sido creado !
    Inc(con, 1);
  end;
  ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 transaccion mierda SQL 0 05-05-2007 16:23:18
Problema con transaccion en SQL server JuanchoArg SQL 2 13-12-2006 22:59:37
Problema con excepsión y transacción mpedra MS SQL Server 8 11-04-2006 22:33:32
Problema con transaccion con IB reina Varios 2 03-09-2005 02:40:11
Urgente - problema de insertar en tabla - Transaccion Activa Patricio Conexión con bases de datos 2 27-06-2005 16:29:06


La franja horaria es GMT +2. Ahora son las 18:38:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi