PDA

Ver la Versión Completa : Conectarme con sql Native Client 10


Dazzo
18-10-2015, 16:34:54
Hola, Tengo un promebla de coneccion con sql express 2008
cuando ejecuto la aplicacion localmente funciona bn, pero cuando trato de conectarme desde un cliente no funciona
y he puesto que la seguridad sea de sql y windows
ayuda pls

AgustinOrtu
18-10-2015, 16:52:08
Se eleva alguna excepcion?

fjcg02
18-10-2015, 21:30:53
Revisa si están todos los servicios de SQL Server levantados.
No recuerdo cuales eran, pero por defecto no se levantan todos.


El propio servicio, el agente, y no se si había algún otro más. Uno de ellos es el que permite las conexiones remotas.

Saludos

Dazzo
19-02-2016, 04:44:37
La verdad es que uso ado para conectarme remotamamente en una maquina en mi red, y cuando hago la coneccion con el objeto tadoconnetion todo va bien, haasta me permite elegir la base de datos a la que me voy a conectar, pero cuando finalizo y trato de activar el objeto adoconnetion me dice "the login is from an untrusted domain and can no be use with window autentification. y en serio que puedo elegir la base de datos y puedo probar la connecion
pero el string que se genera parece que le da a entender a sql 2008 express que es con autenticacion de windos que me estoy conectando y no es asi, y de paso les digo que tengo el aceso de windows y sql activado y este es el string que genera el objeto

Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=Admin;Initial Catalog=master;Data Source=MONITOREO\SQLEXPRESS;Initial File Name="";Server SPN="";
Ayuda plsss

AgustinOrtu
19-02-2016, 05:03:36
"the login is from an untrusted domain and can no be used with Windows autenthication"

Te esta diciendo que para entrar a un servidor remoto, no podes usar tus credenciales de usuario de Windows; debes tener un usuario creado en el servidor SQL. Investiga sobre como crear usuarios en SQL Server y como otorgarles permisos

Luego, tendrás que modificar la cadena de conexión. El propio asistente de ADO contempla la posibilidad de indicar credenciales de acceso

En este enlace (http://www.connectionstrings.com/sql-server-2008/) podes encontrar cadenas de conexion variadas para SQL Server 2008, con distintos proveedores y configuraciones, cada una explicando que hacen los distintos parametros

Saludos

Dazzo
19-02-2016, 05:22:28
es que no estoy conectandome con autenticacion de windows, ese es el problema, y en sql tengo los usuarios definidos para poder entrar, definitivamente es algo en sql 2008 que no entiendo que

AgustinOrtu
19-02-2016, 05:35:47
Esta es la ConnectionString que uso en mis proyectos SQL Server 2008 Express

Funciona tanto local, como remoto, y debes proveedor un usuario creado en el servidor SQL Server


CONNECTION_STRING = 'Provider=SQLOLEDB.1;Password='ClaveDelUsuario';Persist Security Info=True; ' +
'User ID='NombreDeUsuario';Initial Catalog='BaseDatosDefecto';Data Source=Ip-Host-etc\SQLEXPRESS;' +
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;' +
'Use Encryption for Data=False;Tag with column collation when possible=False';


Revisa que el servidor SQL Server permita aceptar conexiones remotas
Revisa que el servidor SQL Server permita aceptar conexiones con credenciales de usuario SQL Server
Revisa el firewall de Windows
Revisa la configuracion de puertos de SQL Server; si usas un puerto en particular, debe estar abierto en el router (si es que hay un router)
Intenta conectar desde la herramienta de gestion de SQL Server
Verifica que el servicio de SQL Server Browser este activo; coloca el servicio en modo de inicio automatico (no siempre viene por defecto asi)

Dazzo
19-02-2016, 05:58:42
te cuento que me conecto perfectamente, pero en remoto es terriblemente lento, ademas que estoy utilizando el sql native client y me funciona localmente, el asunto es remoto que no se conecta.
pero el strin que me has pasado esta super solo que demasiado lento, para hacer una consulta tarda cinco minutos

Dazzo
19-02-2016, 06:03:35
alguna sugerencia para mejorar la velocidad en remoto, por favor

olbeup
19-02-2016, 09:26:51
Hola Dazzo,

En el TADOConnection.ConnectionString no tienes que poner los datos de conexión, eso lo tienes que hacer en el evento BeforeConnect.

procedure TForm1.BeforeConnect(Sender: TObject);
begin
(Sender as TADOConnection).ConnectionString := 'Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=Admin;Password=12345678;Initial Catalog=master;Data Source=MONITOREO\SQLEXPRESS;Initial File Name="";Server SPN=""';
end;

El problema que tienes es si lo haces directamente, que cuando se conecta la primera vez lo hace bien, pero la segunda vez, no te deja porque le ha quitado el "Password", eso me pasa a mí y, lo he resuelto así, funciona muy bien.

Por otro lado, si aún no consigues que funcione, utiliza el provider "SQLOLEDB" que también funciona.

La conexión por Internet no te tiene que ir lento, si la consulta esta optimizada.

Un saludo.