Ir al contenido


Foto

CONSULTA DEMASIADO COMPLEJA


  • Por favor identifícate para responder
6 respuestas en este tema

#1 mati_pincha

mati_pincha

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 04 junio 2013 - 11:56

Hola muchachos, tengo una duda sobre el siguiente mensaje de error:

Project 'miproyecto.exe' raised exception class EDatabaseError with message 'La consulta es demasiado conmpleja'.

Mi programa posee una tabla de access la cual tiene muchos campos, por lo que evidentemente el problema es por esto, aqui les paso el codigo:



delphi
  1.   datamodule2.Piezas1.Edit;
  2.   for a := 1 to 20 do begin
  3.     i:=i+1;
  4.     n:=1;
  5.     st:= inttostr(indice);
  6.     Datamodule2.Piezas1.FieldByName(st).asinteger:=m[i,n];
  7.     indice:=indice +1;
  8.     n:=n+1;
  9.     st:= inttostr(indice);
  10.     Datamodule2.Piezas1.FieldByName(st).asinteger:=m[i,n];
  11.     indice:=indice +1;
  12.     n:=n+1;
  13.     st:= inttostr(indice);
  14.     Datamodule2.Piezas1.FieldByName(st).asinteger:=m[i,n];
  15.     indice:=indice +1;
  16.     n:=n+1;
  17.     st:= inttostr(indice);
  18.     Datamodule2.Piezas1.FieldByName(st).asinteger:=m[i,n];
  19.     indice:=indice +1;
  20.     n:=n+1;
  21.     st:= inttostr(indice);
  22.     Datamodule2.Piezas1.FieldByName(st).asinteger:=m[i,n];
  23.     indice:=indice + 6;
  24.     st:= inttostr(indice);
  25. end;
  26.     datamodule2.Piezas1.Post;



en el post me tira este error, lo que hace antes es agregar la informacion contenida en una matriz a la tabla. Mi duda esta en que yo previamente hago lo mismo pero para insertar una entrada nueva (con append) y no me tira el error..  y esta vez, en la que edito una existente (con edit), me pasa esto.
Ojala alguno me pueda ayudar. Gracias desde ya. un Saludo, Matias
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.474 mensajes
  • LocationMéxico

Escrito 04 junio 2013 - 12:40

Hola

¿ Podrías mostrarnos la consulta ?

Saludos

[OFF-TOPIC]Edité tu mensaje para colocarle la etiqueta DELPHI, con eso se aprecia mejor el código, para la consulta puedes usar la etiqueta SQL que se localiza en la parte alta del cuerpo del mensaje.[/OFF-TOPIC]
  • 0

#3 mati_pincha

mati_pincha

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 04 junio 2013 - 01:04

Hola, gracias por contestar. La cosa es que no hay ninguna consulta. Piezas1 es un ADOTable comun que contiene la tabla piezas1 a la cual le estoy asignando esa informacion. Lo que hace el codigo es editar un campo de la tabla que  ya fue insertado anteriormente. No entiendo el porque del error  si con append funciona..

Gracias de nuevo. un saludo

  • 0

#4 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 04 junio 2013 - 02:10

Independientemente del error que te sale , a primera vista encuentro un error grande de lógica, dentro del procedimiento antes de llamar a Post,  estás asignando  5 veces un valor diferente al mismo campo "st" y este error lo estás repitiendo otras 20 veces con el ciclo, si no te diera error, tan solo guardaría el último valor de los 100 que intentas pasarle.

Saludos.
  • 0

#5 luisgutierrezb

luisgutierrezb

    Advanced Member

  • Miembros
  • PipPipPip
  • 92 mensajes
  • LocationMéxico

Escrito 04 junio 2013 - 02:14

Si estableciste una llave primaria en la tabla?? generalmente eso ayuda mucho..
  • 0

#6 mati_pincha

mati_pincha

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 04 junio 2013 - 03:39

Hola muchachos, gracias por responder.
Wilson: el campo st va cambiando al hacer:



delphi
  1.     indice:=indice +1;
  2.     st:= inttostr(indice);



luisgutierrezb: si, mi base de datos consta de 3 tablas. Para que te hagas una idea es un odontograma. La primera tabla contiene informacion de los pacientes (clave id_paciente), y las otras dos (que contienen el campo id_paciente para la relacion) contienen informacion del estado de las piezas bucales.

Quizas sea un problema de access y sus limites, pero insisto en que lo raro es que me deje agregar una entrada nueva y no modificar una existente con otros valores.. Gracias de nuevo
  • 0

#7 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 04 junio 2013 - 04:37

Hola muchachos, gracias por responder.
Wilson: el campo st va cambiando al hacer:

    indice:=indice +1;
    st:= inttostr(indice);


Disculpa, no había notado que st es dinámico.

  • 0




IP.Board spam blocked by CleanTalk.