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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2013
mario_2000 mario_2000 is offline
Miembro
 
Registrado: may 2006
Ubicación: Heredia, Costa Rica
Posts: 11
Poder: 0
mario_2000 Va por buen camino
Post Error al crear adoquery en webservices corriendo en Windows Server 2008

Buenos días.

Tengo un webservice hecho en Delphi 7 que se conecta a una base de datos de SQL Server 2005, utilizando los componentes ADO. Cuando lo ejecuto en Windows Server 2003, de 32 o 64 bits, lo hace perfectamente.

Recientemente, tuve que instalarlo en un Windows Server 2008 R2 Standard de 64 bits. Pero no me funciona.

Resulta que tengo una función que construye dinámicamente los adoquery, les asigna la conexion, el sql, los ejecuta y luego los destruye), y en la línea marcada se genera un access violation:

Try
Result := True;
Log.Add('Q1. Creando Query',5,3);
//Procedimiento Log almacena strings en un stringlist y cada n cantidad de
//lineas las graba a un archivo de texto, que funciona como bitácora.
//Este procedimiento se utiliza en otras partes del sistema y no presenta
//problemas
Query := TADOQuery.Create(nil); //<-- access violation al invocar simplemente la creación del adoquery
Log.Add('Q2. Asignando Conexion,5,3);
Query.ConnectionString := sConn;
Log.Add('Q3. Sin Chequeo Parámetros,5,3);
Query.ParamCheck := False;
Log.Add('Q4. Asignando SQL,5,3);
Query.SQL.Add(Sql);
Log.Add('Q5. Ejecutando,5,3);
Query.Active := True;

//Se hacen otros procesos
//
//

FreeAndNil(Query);
except
on E: Exception do begin
Log.Add('Crear_Consulta --> Error : ' + E.Message + ' => ' + E.ClassName,5,3);
FreeAndNil(Query);
end;
end;

Cada vez que ejecuto el procedimiento se levanta la excepción y me graba en la bitácora los mensajes

Q1. Creando Query
Crear_Consulta --> Error: No se puede encontrar el módulo especificado=> EOleSysError

Alguien sabe que puede estar pasando para que corra en Windows Server 2003 y no lo haga en Windows Server 2008? Será algún asunto de configuración del Sistema Operativo?

Muchas gracias y saludos a todos los colegas.
Responder Con Cita
  #2  
Antiguo 21-06-2013
potlanos potlanos is offline
Miembro
 
Registrado: jul 2003
Posts: 36
Poder: 0
potlanos Va por buen camino
hola, has encontrado solución?

me pasa lo mismo, me da errores al crear los adoquery, pero mi caso es de pasar de delphi 6 a delphi xe2.. en el 6 me corre sin ningun problema, pero en xe2 me da el mismo error que a ti.

gracias y saludos.
Responder Con Cita
  #3  
Antiguo 21-06-2013
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Verifica en todo el código de la aplicación que no se este destruyendo "accidentalmente" el objeto que contiene el código que eleva la excepción (el que nos estas mostrando).

Algo similar me ocurrió en una aplicación que estuvo funcionando perfectamente durante años en Windows XP y falló cuando se actualizaron los PC's con Windows 7; al revisar encontré que estaba destruyendo erróneamente uno de los DataModule. Ahora lo que no entiendo es por qué sí funcionaba en Windows XP si el código estaba malo.
Responder Con Cita
  #4  
Antiguo 21-06-2013
potlanos potlanos is offline
Miembro
 
Registrado: jul 2003
Posts: 36
Poder: 0
potlanos Va por buen camino
exacto.. lo encontre.

Código Delphi [-]
var
   pcComputer : PWideChar;
   dwCSize    : DWORD;
   aa : string;
begin
   dwCSize := MAX_COMPUTERNAME_LENGTH + 1;
   GetMem( pcComputer, dwCSize );
   try
      if Windows.GetComputerName( pcComputer, dwCSize ) then begin
              aa := pccomputer;
             Result := aa;
          end;
   finally
      FreeMem( pcComputer );
   end;

este es el trozo de código que no se que libera que en delphi xe2 da error despues, y en cambio en delphi 6 no.

la función me devuelve el nombre de la maquina. La he cambiado por otra y listo.


Gracias y Saludos.
Responder Con Cita
  #5  
Antiguo 21-06-2013
mario_2000 mario_2000 is offline
Miembro
 
Registrado: may 2006
Ubicación: Heredia, Costa Rica
Posts: 11
Poder: 0
mario_2000 Va por buen camino
Muchas gracias por tu respuesta Potlanos. Voy a realizar las pruebas correspondientes y les comento el resultado.

Saludos y buen día.
Responder Con Cita
  #6  
Antiguo 21-06-2013
mario_2000 mario_2000 is offline
Miembro
 
Registrado: may 2006
Ubicación: Heredia, Costa Rica
Posts: 11
Poder: 0
mario_2000 Va por buen camino
Cita:
Empezado por orodriguezca Ver Mensaje
Verifica en todo el código de la aplicación que no se este destruyendo "accidentalmente" el objeto que contiene el código que eleva la excepción (el que nos estas mostrando).

Algo similar me ocurrió en una aplicación que estuvo funcionando perfectamente durante años en Windows XP y falló cuando se actualizaron los PC's con Windows 7; al revisar encontré que estaba destruyendo erróneamente uno de los DataModule. Ahora lo que no entiendo es por qué sí funcionaba en Windows XP si el código estaba malo.
Gracias también a ti mi estimado orodriguezca. Voy a revisar este detalle que comentas.

Saludos y buen día.
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
QReport y windows 2008 server moz_an Impresión 0 13-06-2012 17:39:05
Windows 2008 server Toni Windows 7 29-07-2011 00:23:04
Windows Authentication y Sql Server 2008 Paulao Varios 5 23-11-2010 21:07:49
Delphi y Windows Server 2008 Paulao Varios 0 29-10-2010 18:10:02
Dlephi 6 - Windows 7 - SQL Server 2008 andresu723 MS SQL Server 0 14-04-2010 16:33:50


La franja horaria es GMT +2. Ahora son las 01:35:03.


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