Club Delphi  
    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 22-04-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Mensaje de error al finalizar aplicacion

Hola, no se si este post va aqui, pero como mi programa gestiona una base de datos e supuesto que el fallo estara relacionado con la base de datos.
bueno al grano, mi problema es que al finalizar mi aplicacion me sale el mensaje de error "exception eaccessviolation in module idobdc32.dll at 00026234.
access violation at address 4da06234 in module idodbc32.dll. read of address cccccce0".
Alguien sabria decirme de que se trata y que solución tiene?
Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 22-04-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Checa Esto....

Posiblemente estes accesando a alguna tabla, query, datamodule, etc. que no este CREADO.

Saludos....
Responder Con Cita
  #3  
Antiguo 23-04-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
No es ese el problema

Ese no es el problema, todas las tablas que tengo declaradas estan siendo utilizadas y desactivadas a la vez que no se utilizan, y a la hora de cerrar la aplicación es cuando me da el error
Responder Con Cita
  #4  
Antiguo 24-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo que Agag4 quiere decir es que revises el orden de creación y destrucción de los componentes, Datamodules, Forms, etc.

Puede que estes destruyendo el Datamodule, y despues intentes cerrar una tabla que está en el Datamodule.

Suele ser ese tipo de cosas las que dan el error despues del end.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 03-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Question Codigo que da el error

El problema viene cuando manejo una tabla determinada (table12), mientras no toque ese tabla el programa no da ningun problema, por lo que os dejo aqui el codigo donde manipulo dicha tabla a ver si ustedes son capaces de ver el fallo. A mi me trae de cabeza.
Saludos
Código Delphi [-]
procedure TForm17.Button1Click(Sender: TObject);
begin
//coloco la fecha en su campo
DBEdit9.Text:= DateToStr(Date);
table10.Post;
// Registro en la tabla auxiliar para imprimir después
if dblookupcombobox1.Text<>'' then
begin
Table1.IndexFieldNames:= 'DESCRIPCION';
if Table1.FindKey([DBLooKupComboBox1.Text])=True then
Table12.Edit;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit6.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table1.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table1.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table1.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit6.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox2.Text<>'' then
begin
Table2.IndexFieldNames:= 'DESCRIPCION';
if Table2.FindKey([DBLooKupComboBox2.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit7.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table2.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table2.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table2.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit7.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox3.Text<>'' then
begin
Table3.IndexFieldNames:= 'DESCRIPCION';
if Table3.FindKey([DBLooKupComboBox3.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit8.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table3.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table3.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table3.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit8.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox4.Text<>'' then
begin
Table4.IndexFieldNames:= 'DESCRIPCION';
if Table4.FindKey([DBLooKupComboBox4.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit9.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table4.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table4.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table4.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit9.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox5.Text<>'' then
begin
Table5.IndexFieldNames:= 'DESCRIPCION';
if Table5.FindKey([DBLooKupComboBox5.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit10.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table5.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table5.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table5.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit10.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox6.Text<>'' then
begin
Table6.IndexFieldNames:= 'DESCRIPCION';
if Table6.FindKey([DBLooKupComboBox6.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit11.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table6.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table6.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table6.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit11.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox7.Text<>'' then
begin
Table7.IndexFieldNames:= 'DESCRIPCION';
if Table7.FindKey([DBLooKupComboBox7.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit12.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table7.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table7.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table7.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit12.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox8.Text<>'' then
begin
Table8.IndexFieldNames:= 'DESCRIPCION';
if Table8.FindKey([DBLooKupComboBox8.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit13.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table8.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table8.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table8.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit13.Text);
end;
//-------------------------------------------------------------
if dblookupcombobox9.Text<>'' then
begin
Table9.IndexFieldNames:= 'DESCRIPCION';
if Table9.FindKey([DBLooKupComboBox9.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit14.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table9.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table9.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table9.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit14.Text);
end;
end;

Última edición por vtdeleon fecha: 03-05-2006 a las 21:47:30.
Responder Con Cita
  #6  
Antiguo 03-05-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Mi madrea SANTISIMA. Por favor usas las etiquetas. Esta vez lo haré por ti, edita tu código para que veas como se utiliza.

Tambien trata de identar el codigo
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 03-05-2006 a las 21:50:06.
Responder Con Cita
  #7  
Antiguo 04-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Red face error en codigo

Lo siento no sabia de la existencia de las etiquetas, es que soy novato.
No se a que te refieres con identar el codigo, pero ese que he puesto es muy sencillo de comprender.
Espero sus respuesta haber si encuentran el fallo.
saludos
Responder Con Cita
  #8  
Antiguo 04-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por salvanano
No se a que te refieres con identar el codigo
Se nota jejeje, vtdeleon se refiere a incluir espacios al principio de una linea cuando tiene el begin .... end, así se sabe a que bloque pertenece cada código.

A lo que vamos, donde estan los Post respectivos de cada tabla?? porque mandas a insertar una y otra vez, pero no mandas a hacer el Post de cada tabla que editas.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 04-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Question mensaje de error

Separo cada parte con "//----".
Lo que hago ahí es que de varias tablas selecciono un campo y los meto en una tabla auxiliar para imprimirla despues. Al finalizar la impresion borro todos los campos de esta tabla auxiliar dejandola limpia, por lo que no necesito hacer post a las tablas, pero no estoy seguro si debo hacerselo a la tabla auxiliar en algun momento.
Saludos
Responder Con Cita
  #10  
Antiguo 05-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cada tabla.Edit y Tabla.INsert necesita un post.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 05-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Smile error en aplicaion

OK, probare a poner un post en cada tabla que edite o inserte a ver si me deja de dar el error.
Ya os comento los resultados.
Saludos y gracias
Responder Con Cita
  #12  
Antiguo 06-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Question Sigo con problemas

He probado a postear la tabla pero no me funciona, sigue dando el mismo error. Alguien sabria decirme porque me da ese error? No se si hago algo mal con la tabla o me falta alguna operación, pero creo que en principio el codigo está bien.
Saludos.
Responder Con Cita
  #13  
Antiguo 07-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo del Post era un fallo independiente del error que te dá, me cito a mi mismo:

Cita:
Empezado por Lepe
Lo que Agag4 quiere decir es que revises el orden de creación y destrucción de los componentes, Datamodules, Forms, etc.

Puede que estes destruyendo el Datamodule, y despues intentes cerrar una tabla que está en el Datamodule.

Suele ser ese tipo de cosas las que dan el error despues del end.
Incluso puede ser que delphi sea el que está intentando cerrar esa tabla. Si tu dejas una tabla que tienes en un Form abierta, y primero se destruye el datamodule, delphi cerrará la tabla en el Datamodule, cuando se vaya a destruir ese Form, puede dar un error de ese tipo.

Este tipo de errores son los más dificiles de encontrar.... no hace falta que lo diga ¿verdad?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 07-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Smile error en aplicación

Entonces debría destruir o cerrar la tabla antes de cerrar el datamodule?
La verdad es que me está costando bastante solucionar este problemilla, es el más dificil con el que me he encontrado hasta el momento .
Seguire probando a ver si lo soluciono. Mientras tanto espero sus consejos.
Saludos
Responder Con Cita
  #15  
Antiguo 08-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Se supone que en tu programa no has usado cosas de este estilo:

Dm := Tdatamodule.Create(...);
Tabla := TTable.Create(...);

Por tanto no tienes que destruir nada, solo cerrar las tablas (tabla1.Close). Si usas un objeto TDatabase, cerrando el TDatabase se cierran todas las tablas que esten asociadas con él.

Pon puntos de ruptura en los eventos OnClose de cada ventana (si usas ese evento para algo) y en el OnCloseQuery.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #16  
Antiguo 09-05-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 18
waltergomez Va por buen camino
Lo podiste solucionar ?
Si estas con el problema, decime que base de datos usas (la estructura de la tabla con la instruccion CREATE TABLE ...), que componentes delphi usas (creo que son tables y si es asi usas BDE).

Saludos,
Responder Con Cita
  #17  
Antiguo 24-05-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 19
salvanano Va por buen camino
Smile Por fin!!!!!!!!

No soy capaz de solucionarlo.
utilizo una base de datos en acces con un bde y 12 tables con sus correspondientes datasource, todo en un mismo form.
Parte del codigo esta arriba, y es donde me da error.saludos

Última edición por salvanano fecha: 24-05-2006 a las 01:26:59.
Responder Con Cita
  #18  
Antiguo 24-05-2006
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
viendo tu código, posiblemente este sea el el error.

Código Delphi [-]
if dblookupcombobox9.Text<>'' then
begin
Table9.IndexFieldNames:= 'DESCRIPCION';
if Table9.FindKey([DBLooKupComboBox9.Text])=True then
Table12.Insert;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit14.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table9.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table9.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table9.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit14.Text);
end;

Si te fijas :


Busscas el registro

Código Delphi [-]
Table9.IndexFieldNames:= 'DESCRIPCION';
if Table9.FindKey([DBLooKupComboBox9.Text])=True then
Table12.Insert;

y lo "guardas" temporalmente.

Pero si no lo encuentra, de todos modos guardas vaya saber que cosa.

Código Delphi [-]
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit14.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table9.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table9.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table9.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit14.Text);
end;



saludos.

Y si haces un insert, haz un post.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #19  
Antiguo 24-05-2006
Avatar de judit25
judit25 judit25 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Bronx, NY
Posts: 122
Poder: 18
judit25 Va por buen camino
Código Delphi [-]
begin
Table1.IndexFieldNames:= 'DESCRIPCION';
if Table1.FindKey([DBLooKupComboBox1.Text])=True then

begin // aqui iria por ej en esta sentencia

Table12.Edit;
Table12.FieldByName('CANTIDAD').AsFloat:= StrToFloat(Form17.Edit6.Text);
Table12.FieldByName('DESCRIPCION').AsString:= Table1.FieldByName('DESCRIPCION').AsString;
Table12.FieldByName('PRECIO').AsFloat:= Table1.FieldByName('PRECIO').AsFloat;
Table12.FieldByName('SUBTOTAL').AsFloat:= Table1.FieldByName('PRECIO').AsFloat * StrToFloat(Form17.Edit6.Text);

end // aqui termina
end;

No se si podría ayudarte esto pero intenta agregando un begin end entre cada sentencia IF que utilizas, así solamente cuando se cumpla la condición él pasara por ahí y hará el insert en la tabla.

saludos
Responder Con Cita
  #20  
Antiguo 25-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Sería bueno que postearas el código con las correcciones hechas.

Por otra parte, quizás sea conveniente que comentes como funciona la aplicación y si usas componentes de terceros.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Finalizar una Condición jdangosto OOP 3 02-12-2005 08:57:38
Mensaje de error majosf Conexión con bases de datos 2 16-11-2005 20:25:46
Mensaje de error Luli Varios 3 31-10-2005 13:59:02
Mensaje de error Ana Tudela Conexión con bases de datos 1 14-09-2004 16:47:43
¿Cómo finalizar una aplicación desde la mía? Lester Varios 7 10-11-2003 22:49:28


La franja horaria es GMT +2. Ahora son las 04:00:50.


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