Club Delphi  
    FTP   CCD     Enlaces   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 Desplegado
  #1  
Antiguo 02-05-2012
Leviatan Leviatan is offline
Miembro
 
Registrado: oct 2005
Posts: 51
Leviatan Va por buen camino
Problema para conectar a MSSQL Server usando DBExpress

Hola amigos:

Estoy desarrollando una app en Delphi 2010 que accede a una BD SQL Server utilizando DBExpress. Las pruebas las estoy haciendo desde el Delphi a una BD SQL Server 2005 y funciona bien; el problema viene cuando lo instalo en el equipo en producción que accede a una BD SQL Server 2008. El error que me aparece cuando intento hacer la conexión es: "DBX error: Driver could not be properly initialized. Client library may be missing, not installed properly, or of the wrong version."

Estos son los archivos que incluyo en mi instalador para la distribución:

dbxconnections.ini
dbxdrivers.ini
dbxmss9.dll
midas.dll

¿Será que me estará faltando algún otro archivo?

Saludos y gracias de antemano.
Responder Con Cita
  #2  
Antiguo 03-05-2012
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 520
olbeup Va por buen camino
Lo que parece que esta pasando es que necesitas los controladores de conexión para SQL SERVER 2008, en éste sito te lo puedes descargar en la parte de "Microsoft SQL Server 2008 Native Client" y el fichero es: sqlncli.msi, hay a veces que se necesita este otro: "Windows Installer 4.5."

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 03-05-2012 a las 08:15:23.
Responder Con Cita
  #3  
Antiguo 03-05-2012
Leviatan Leviatan is offline
Miembro
 
Registrado: oct 2005
Posts: 51
Leviatan Va por buen camino
Hola olbeup:

Muchas gracias por la información. Lo voy a probar y te cuento cómo me fue.

Saludos.
Responder Con Cita
  #4  
Antiguo 03-05-2012
Leviatan Leviatan is offline
Miembro
 
Registrado: oct 2005
Posts: 51
Leviatan Va por buen camino
Hola de nuevo olbeup:

Instalé la app y luego el sqlncli.msi. Reinicié el equipo para asegurar, ejecuté la app pero sigue dando el mismo error.

No sé qué podría ser; me parece un poco extraño. Si alguien piensa cuál podría ser el problema le agradecería una ayuda.

Saludos.
Responder Con Cita
  #5  
Antiguo 04-05-2012
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 520
olbeup Va por buen camino
¿Cual es el parámetro de conexión que realizas?

Puedes descartar si el problema es de tu aplicación.

Realiza una prueba de conexión desde el ODBC al servidor, "Panel de control, Herramientas administrativas, Orígenes de datos (ODBC), Pestaña: DSN de sistema, Agregar, y seleccionar: SQL Native Client", establece los parámetros de conexión para comprobar que todo funciona bien.

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #6  
Antiguo 04-05-2012
Leviatan Leviatan is offline
Miembro
 
Registrado: oct 2005
Posts: 51
Leviatan Va por buen camino
Por una razón de tiempo que apremiaba ya a mi cliente recurrí a la siguiente solución, una asignación dinámica a la cadena de conexión:

Código Delphi [-]
procedure TfrmParametro.btnProbarConexionClick(Sender: TObject);
var
  sConn: string;
begin
  try
    frmAcceso.ConnIntegracion.Connected := False;

    sConn := 'Provider=SQLOLEDB;' +
                 'Data Source=' + edServInt.Text + ';' +
                 'Initial Catalog=' + edBDInt.Text + ';' +
                 'User Id=' + edUsuInt.Text + ';' +
                 'Password=' + edContraInt.Text;
    frmAcceso.ConnIntegracion.ConnectionString := sConn;

    frmAcceso.ConnIntegracion.Connected := True;
    MyMessageDialog('Prueba de conexión exitosa', mtInformation, [mbOk], [OK]);
  except
    on E: Exception do
      MyMessageDialog(E.Message + '. ' + E.ClassName, mtError, [mbOk], [OK]);
  end;
end;

Y me funcionó súper bien.

Saludos.
Responder Con Cita
  #7  
Antiguo 07-05-2012
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 520
olbeup Va por buen camino
La conexión que utilizas SQLOLEDB es para SQL 2000, para la conexión de SQL 2005..2008 es SQLNCLI

un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #8  
Antiguo 10-05-2012
Leviatan Leviatan is offline
Miembro
 
Registrado: oct 2005
Posts: 51
Leviatan Va por buen camino
Ok, gracias olbeup.

La verdad que he probado el SQLOLEDB y me ha funcionado bien (por el momento) tanto en SQL Server 2005 como en 2008. Pero de todos modos tendré en cuenta el SQLNCLI en caso de algún inconveniente.

Saludos.
Responder Con Cita
Respuesta


Herramientas
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
conectar delphi 2005 con mssql server 2005 tebre Conexión con bases de datos 0 26-11-2008 19:16:47
¿como conectar remotamente con SQL Server 2005 desde dbExpress? a6767 Conexión con bases de datos 1 09-06-2008 22:09:06
conectar postgresql usando dbexpress barrauda Conexión con bases de datos 4 16-07-2007 13:45:04
Tengo problema para conectar interbase 6 con win 2003 server mosajeh Firebird e Interbase 3 26-11-2006 13:44:46
BDE,DBExpress,ADO? para conectar con ORACLE jmbarrio Conexión con bases de datos 2 27-07-2005 18:04:39


La franja horaria es GMT +2. Ahora son las 17:28:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi