Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-04-2010
tazluz tazluz is offline
Registrado
 
Registrado: abr 2010
Posts: 2
Poder: 0
tazluz Va por buen camino
Angry violation adress

el problema es el siguiente: en una aplicacion utilizo un query para dar de alta y todo correcto, al actualizar la tabla con el query dinamico me provoca un error de violation de adrees xxxxx . y en tiempo de ejecuci0on me manda otro error ''la tabla no existe odbc de oracle" pero resulta que la tabla si existe, en la cual inserto antes de querer hacer update
Responder Con Cita
  #2  
Antiguo 22-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En cuando a lo que preguntas no se entiende mucho, seria bueno que aportaras el codigo que tienes y en que parte da el error.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 23-04-2010 a las 01:20:42.
Responder Con Cita
  #3  
Antiguo 22-04-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Ejecuta paso a paso e intenta saber qué línea da el "access violation". Normalmente se deben a intentar acceder a objetos liberados o no creados correctamente.
Eso te puede dar alguna pista más.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 22-04-2010
tazluz tazluz is offline
Registrado
 
Registrado: abr 2010
Posts: 2
Poder: 0
tazluz Va por buen camino
El problema es el siguiente: en una aplicacion utilizo un query para dar de alta y todo correcto, al actualizar la tabla con el query dinamico me provoca un error de violation de adrees xxxxx . y en tiempo de ejecucion me manda otro error ''la tabla no existe odbc de oracle" pero resulta que la tabla si existe, en la cual inserto antes de querer hacer update el codigo es el siguiente

Código Delphi [-]
   if BitBtnGuardar.Caption='&Modificar' then
    begin
      With DataModuleSubespec.QueryExp_Orbita  do
      begin
        Sql.Clear;
        Sql.Add('Update Expediente_Orbita Set ID_PACIENTE =:Param1,CVE_SERVICIO=:Param2,ID_MEDICO=:Param3,');
        Sql.Add('FECHA=:Param4,ATENDIDO=:Param5,SEC1_PADACT=:Param6,SEC1_HEREDOFA=:Param7,SEC1_APP=:Param8,'  );
        Sql.Add('SEC1_APNP=:Param9,SEC1_HEXT=:Param10,SEC1_OD_AV=:Param11,SEC1_OD_CONST=:Param12,SEC1_OI_AV=  :Param13,');
        Sql.Add('SEC1_OI_CONST=:Param14,SEC1_OD_QUERATOM=:Param15,SEC1_OI_QUERATOM=:Param16,SEC1_OD_COPT=:Pa  ram17,');
        Sql.Add('SEC1_OI_COPT=:Param18,SEC1_OD_LEJOS=:Param19,SEC1_OI_LEJOS=:Param20,SEC1_OD_AVL=:Param21,')  ;
        SQL.Add('SEC1_OI_AVL=:Param22,SEC1_OD_CERCA=:Param23,SEC1_OI_CERCA=:Param24,SEC1_OD_AVC=:Param25,');
        Sql.Add('SEC1_OI_AVC=:Param26,SEC1_OD_RPUPILA=:Param27,SEC1_OI_RPUPILA=:Param28,SEC1_OD_CROMATICO=:P  aram29,');
        Sql.Add('SEC1_OI_CROMATICO=:Param30,SEC1_OD_LUMINOSO=:Param31,SEC1_OI_LUMINOSO=:Param32,SEC1_OD_MOCU  L=:Param33,');
        SQL.Add('SEC1_OI_MOCUL=:Param34,SEC1_TONOME=:Param35,SEC1_APLANACION=:Param36,SEC1_SCH=:Param37,SEC1  _DIGITAL=:Param38,');
        Sql.Add('SEC1_DIGITEXTO=:Param39,SEC2_OBS_ORBITA=:Param40,SEC2_OBS_CORNIRIS=:Param41,SEC3_OBS_VITREO  =:Param42,');
        Sql.Add('SEC3_OBS_CPCRIS=:Param43,SEC5_EC_EXOF=:Param44,SEC5_EC_ECO=:Param45,SEC5_EC_TOMO=:Param46,'  );
        Sql.Add('SEC5_EC_ISHI=:Param47,SEC5_EC_EHISTOPATO=:Param48 Where id_paciente=aram49 and fecha=aram50');
        Params[0].AsString:=LabelId_paciente.Caption;Params[1].AsString:=cve_serv;
        Params[2].AsString:=FormLogin.Login; Params[3].AsString:=copy(Labelfecha.Caption,1,10);
        Params[4].AsString:='S';  Params[5].AsString:=MemoPadecimientoActual.Text;
        Params[6].AsString:=MemoHereditariosyFamiliares.Text; Params[7].AsString:= MemoPersonalesPatologicos.Text;
        Params[8].AsString:=MemoPersonalesnoPatologicos.Text;Params[9].AsString:=MemoHabitusExterior.Text;
        Params[10].AsString:=EditODAV.text;Params[11].AsString:=EditODConST.Text;
        Params[12].asstring:= EditOIAV.Text; Params[13].AsString:=EditOIConST.Text;
        Params[14].AsString:=EditODQueratom.Text;Params[15].AsString:=EditOIQueratom.Text;
        Params[16].AsString:=EditODCorreccionoptica.Text;Params[17].AsString:=EditOICorreccionoptica.Text;
        Params[18].AsString:=EditODLejos.Text; Params[19].AsString:=EditOILejos.Text;
        Params[20].AsString:=EditODLejosav.Text;Params[21].AsString:=EditOILejosav.Text;
        Params[22].AsString:=EditODCerca.Text; Params[23].AsString:=EditOICerca.Text;
        Params[24].AsString:=EditODCercaav.Text; Params[25].AsString:=EditOICercaav.Text;
        Params[26].AsString:=EditODRPupilares.Text;Params[27].AsString:=EditOIRPupilares.Text;
        Params[28].AsString:=EditODSCromatico.Text; Params[29].AsString:=EditOISCromatico.Text;
        Params[30].AsString:=EditODSLuminoso.Text;  Params[31].AsString:=EditODSLuminoso.Text;
        Params[32].AsString:=EditODMotOcular.Text;  Params[33].AsString:=EditOIMotOcular.Text;
        if CheckBoxAplanacion.State=cbChecked then   Params[34].AsString:='1' else  //tono
        if CheckBoxAplanacion.State=cbUnchecked then Params[34].AsString:='0';
        Params[35].AsString:=EditAplanacion.Text;
        if CheckBoxSHC.State=cbChecked then   Params[36].AsString:='1' else
        if CheckBoxSHC.State=cbUnchecked then Params[36].AsString:='0';
        if CheckBoxDigital.State=cbChecked then   Params[37].AsString:='1' else
        if CheckBoxDigital.State=cbUnchecked then Params[37].AsString:='0';
        Params[38].AsString:=EditDigital.Text;    Params[39].AsString:=MemoParpadoObservaciones.Text;
        Params[40].AsString:=MemoCorneaObservaciones.Text;  Params[41].AsString:=MemoPapilas.Text;
        Params[42].AsString:=MemoCamaraAnterior.Text; Params[43].AsString:=Memoexoftalmologia.Text;
        Params[44].AsString:=Memoecografia.Text;  Params[45].AsString:=Memotomografia.Text;
        Params[46].AsString:=Memoishiara.Text;  Params[47].AsString:=Memohistopato.Text;
        Params[48].AsString:=LabelId_paciente.Caption;  Params[49].AsString:=copy(Labelfecha.Caption,1,10);
        ExecSQL;
       end;

espero me puedan ayudar, en tiempo diseño me manda error violation acces (adrees) y en tiempo ejecucion me dice que la tabla no existe, y si existe trabajo con base de oracle y delphi6

Última edición por Neftali [Germán.Estévez] fecha: 23-04-2010 a las 10:01:34. Razón: Añadir etiquetas al código (Neftalí)
Responder Con Cita
  #5  
Antiguo 23-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Que update mas complicado, nunca he visto algo asi.....
Lo unico que veo asi a simple vista y sin usar las etiquetas que ayudan mucho es:
Params[1].AsString:=cve_serv;
No se que es, de donde sale.
Es lo unico que veo, el parametro 3 tambien me tiene desconcertado, pero seguro es asi.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 23-04-2010 a las 01:36:56.
Responder Con Cita
  #6  
Antiguo 23-04-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Estoy con Caral. Las dos líneas donde utilizas el Copy son posibles para generar esos errores si los Label están vacíos o con cadenas pequeñas.

Lo que me desconcierta es que el error no te de en ejecución y sí en diseño. Deberías ser al revés.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 23-04-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
taluz, deberías usar TAG's cuando coloques código delphi. Mejora la lectura del código considerablemente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 27-04-2010
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
Un error de Access Violation se produce (generalmente) cuando se está accesando a una posición de memoria no asignada o inicializada... Si la dirección que te retorna el error es algo como #FFFFFFF o #0000000 (no recuerdo cual de las dos) el error indica que estas accesando a un objeto que aun no está instanciado....

Por otro lado, si la dirección de memoria tiene un valor diferente, es muy probable que por error de codigo se esté accesando a una sección de memoria de otro objeto... suele suceder con arrays dinámicos cuyo subindice esta fuera de rango...

Ahora, como dice caral, sería bueno que hicieras un seguimiento paso a paso para identificar exactamente cual es la linea que te genera el error, para tener mas pistas.

Muy probablemente el segundo error sea fruto del segundo, para ello te recomiendo "proteger" el codigo con TRy..Except.... por ejemplo antes de hacer el ExecSQL, asi:

Try
ExecSQL;
Except
On E: TException do
ShowMessage('Error de ejecución: '+E.message);
end;

Suerte.
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
¿cual es el error? Acces violation at adress 006C696E. Write of adress 004AD5EC rrf Conexión con bases de datos 6 29-01-2009 16:46:02
acces violation at adress en quickreports eduardo360 Impresión 1 13-02-2008 01:54:49
Violación de Dirección Access violation at adress Manuel Varios 8 26-11-2007 20:19:02
mac adress ? Jorghino reyes Internet 1 13-09-2005 19:54:45
Error "Access violation at adress..." Alex Conexión con bases de datos 3 01-06-2003 12:15:21


La franja horaria es GMT +2. Ahora son las 07:03:24.


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