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 14-01-2007
chetos7 chetos7 is offline
Miembro
 
Registrado: ene 2007
Posts: 15
Poder: 0
chetos7 Va por buen camino
URGENTE!!! Me Manda un error al llenar un combobox

Hola, tengo un problemon y no se como resolverlo. Lo que pasa es que estoy haciendo un proyecto de una biblioteca, manejo base de datos en sql. Asi estan las cosas: yo tengo que llenar un combobox con una tabla, pero la tabla puede tener registros repetidos, siendo mas exacto, tengo una tabla de libros, donde tiene titulo,autor, etc, y tengo que llenar un combobox ya sea con los titulos de libro o autor, la decision sera a traves de un radiobutton, cuando doy clic al radiobutton1, se llena con los titulos del libro, si cambio al radiobutton2, se llena con los autores de todos los libros, pero mi problema es que al darle clic a un radiobutton si se llena bien, pero al cambiar de radiotbutton me manda un error, el cual es:
Project bibliteca.exe raised exception class EAAccessViolation with message 'Access violation en address 1F453E7E in module 'masado.15dll. Write of address 00CC7014'. Process stopped. Use step or run to continue.
El mismo error me aparece en otra forma en la cual en el evento onactivate le pong que me llene otro combobox, pero ahora, solo con los diferentes titulos, y en el primer registro si lo hace bien, pero como puedo hacer mas de un registro continue en esa forma, me manda el mismo error.
Asi lleno mi combo box:
modulodedatos.FiltradoLA;
modulodedatos.ADOQuery2.Open;
modulodedatos.ADOQuery2.First;
ComboBox1.Items.Clear;
while not modulodedatos.ADOQuery2.Eof do
begin
ComboBox1.Items.Add(modulodedatos.ADOQuery2['Autor1']);
modulodedatos.ADOQuery2.Next;
end;
modulodedatos.ADOQuery2.Close;
Y el codigo de FiltradoLa es el siguiente:
ADOQUERY2.SQL.Clear;
ADOQUERY2.SQL.Add('select distinct Autor1 from libros order by Autor1');
ADOQUERY2.ExecSQL;
Si alguien me puede ayudar, se los agradeceria profundamente.
Ah, otra cosa, ya aprovechando, otro problema es que en mi base de datos tengo los datos de libro, pero la materia la manejo con un id, con el cual saco el nombre de lamateria con otra tabla llamada materia, pero al mostrar los datos en un dbgrid del libro, pues me pone el id de materia, pero yo quiero poner el nombre de la materia, seria algo asi, como conectar dos tablas y sustituir el idmateria por su materia, Espero haberme explicado bien.
Perdon si es algo muy largo y aburmador, pero no se que hacer y esto lo tengo que entregar el martes 17 de enero, asi que veran que estoy muy desesperado. Les agradezco de antemano
Responder Con Cita
  #2  
Antiguo 15-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, antetodo bienvenido al ClubDelphi.

Por favor, leete la Guía de Estilo y entenderás que no debes repetir los hilos (no ayuda en nada, sólo conseguirás que se te recrimine por parte de un moderador y te cierren el hilo), poner títulos descriptivos y no usar palabras como "urgente" porque no ayudan en posteriores búsquedas si alguien más tiene el mismo problema que tú.
No hacer distintas preguntas en el mismo hilo por la misma razón que antes. Y usar las etiquetas para envolver el código para mejorar la legibilidad.

A bote pronto, referente a tu problema, es que, tras rellenar la propiedad Add (o text) del AdoQuery, llamas al método ExecSQL y luego al Open. Es un error muy frecuente, por lo que veo.
ExecSQL, sólo debes usarlo cuando la Query que vayas a ejecutar no sea una Select, es decir, cualquier otra: Insert, Delete, Update, Drop, Create, etc.
Además nunca usas en combinación con Open o Active := True, porque puede que te de problemas.
En cambio el metodo Open o la propiedad Active := True (son equivalentes los dos, pero sólo debes usar uno a la vez), son los que activan la query en caso que esta sea una consulta (SELECT).

No se si esto, te soluciona el problema, pero con el código que nos has dado es lo único que veo, a simple vista.

Tú segundo problema puedes probar con la siguiente select, substituyendo los nombres con los de tus tablas.

Código SQL [-]
 select materia.nombre
   from datos_libro, materia
 where materia.id = datos_libro.id
 //así conectas las dos tablas por el id y consigues el nombre. Esta selec la debes poner en la Query que conectes al DataSource que está conectado a su vez con el DBGrid, así te mostrará el nombre de la materia.

Espero te sirva.

Saludos
Responder Con Cita
  #3  
Antiguo 15-01-2007
chetos7 chetos7 is offline
Miembro
 
Registrado: ene 2007
Posts: 15
Poder: 0
chetos7 Va por buen camino
Muchas Muchas gracias

antes que nada, pido disculpas pero era mi primer mensaje en el foro, y pues no sabia nada de no repetir tema ni poner urgente ni nada de eso, lo siento...era miprimera vez, jeje .
Ahora, te lo super mega agradezco, casi lloro de alegria (jeje) porque tenia ya mas de una semana con ese maldito problema y pues tengo la presion de que esta tarea era para el martes.
Lo otro, apenas lo voy a intentar, pero lo del combobox funciona super bien.
Michas gracias
y para la proxima, no cometere los mismos errores al insertar nuevo tema
Responder Con Cita
  #4  
Antiguo 15-01-2007
chetos7 chetos7 is offline
Miembro
 
Registrado: ene 2007
Posts: 15
Poder: 0
chetos7 Va por buen camino
Otra vez...perdon

Que onda, mira, ya le quite eladoquery2.execsql
y todavia me manda el error, aunque "dura un poco mas " sin mandarlo, pero igual lo manda
Responder Con Cita
  #5  
Antiguo 15-01-2007
chetos7 chetos7 is offline
Miembro
 
Registrado: ene 2007
Posts: 15
Poder: 0
chetos7 Va por buen camino
Ahora si!!!

Ya verifique y el error era por otra consulta que hacia donde tambien ejecuatab el query, lo cual ya se lo quiete y si funciona, muchras gracias otra vez.
Por otra parte, ya probe mi segunda duda, y tambien esta tod perfecto.
Gracias, gracias
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
llenar un combobox fabian20s Conexión con bases de datos 13 30-11-2007 18:54:56
Error al llenar tabla desde archivo txt bohemioloco Conexión con bases de datos 9 13-11-2006 13:49:54
Error Ado Urgente soloriv Conexión con bases de datos 1 17-04-2006 17:20:49
Como llenar este comboBox pzala Varios 2 14-12-2003 21:26:22


La franja horaria es GMT +2. Ahora son las 16:02:41.


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