Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ado Connection (https://www.clubdelphi.com/foros/showthread.php?t=61491)

cmm07 10-11-2008 12:58:41

Ado Connection
 
Hola, mi pregunta es muy clara y sencilla ;), ¿Como logro hacer una aplicacion CLiente - Servidor de base de datos SQL con ADO en Delphi???

y a la hora de trasladar ¿Que archivos debo copiar?

gracias.
54LU2

Neftali [Germán.Estévez] 10-11-2008 14:32:05

Si te refieres a instalarlo en otra máquina, deberías comprobar que tienes actualizadas las MDAC de Microsoft o instalar el cliente de SQL.

droguerman 10-11-2008 14:36:51

La forma más sencilla es usar un componente ADOConnection (que lo puedes encontrar en la paleta ADO), configurar la propiedad ConnectionString y elegir Provider for SQL Server. Hecho esto configurar la propiedad Connected al valor true.

Para empezar a trabajar necesitas usar componentes ADOTable o aun más recomendable ADODataset para recuperar datos, tambien puedes usar componentes ADOStoredProc o ADOCommand, debes assignar a cualquiera de estos componentes la propiedad Connection para que apunte al ADOConnection que configuraste previamente.

Para redistribuir la aplicación, pues, por lo general no hay muchos problemas con sistemas como Windows XP sin embargo es recomendable instalar antes MDAC en su última versión que lo puedes encontrar en la web de microsoft

cmm07 10-11-2008 15:22:04

Hola, gracias por su respuestas, pero tengo un servidor donde esta el Delphi y SQL, y tengo un cliente que es donde esta mi aplicacion( al instalar el MDAC 2.8 me da un error: MDAC 2.8 RTM no es compatible con esta versión de Windows. Todas sus características ya forman parte de Windows.), en delphi hao los sig.pasos:

1.- Creo una app..
2.-agrego el ADOCONNECTION.
3.- me voy a los tres puntitos "..."en COnnectionString, luego en Build.
4.- elijo Microsoft OLE DB Provider for SQL Server y le doy a siguiente.
5.-en el primer edit, osea el nombre del servidor, coloco la ip publica del servidor: xxx.xxx.xxx.xxx
6.- en user : sa y en pass: XXXXXXXXX
7.- y al abrir el ComboBox de abajo en seleccione la base de datos se queda esperando un rato y me aparece el sig error:
[DBNETLIB][ConnectionOpen(Connect()).]No Existe el servidor SQL Server o se ha denegado el acceso, luego hago clic en aceptar y :
Error al iniciar sesión. No se puede recuperar la información del catálogo, y no me funciona nada.

PD: Los firewall y antivirus los desactive toditos, funciona prefecto en el equipo local pero en el cliente o remotamente pues, el error...

¿Que puede ser?

gracias
54LU2

Neftali [Germán.Estévez] 10-11-2008 16:54:07

Perdón, yo había entendido que la aplicación ya estaba funcionando (ya la tenías) y sólo te faltaba instalarla en otra máquina.

En cuanto a ADO, en la WIKI del club hay varios ejemplos concretos y explicados paso a paso de cómo debes hacer para conectarte mediante ADO a una Base de Datos.

Aquí tienes uno y aquí otro, muy bien explicados. Aunque funcionan sobre Access, es igual o muy similar sobre SQL Server.

cmm07 11-11-2008 01:33:21

muchas gracias Neftali, voy a ver y analizar los ejemplos, gracias.

Edito: Estaba revisando pero lamentablemente en ninguno sale como hacer un CLiente/Servidor y está en Access y yo necesito SQL Server, ya pude conectar la base de datos pero en el equipo local, ahora necesito hacerlo remotamente(Cliente - Servidor)

gracias de todas formas

54Lu2...

cmm07 11-11-2008 02:01:14

sigo sin solucionar nada , nose porque me marca ese error, que fome porque necesito urgente esto del CLiente/Servidor de SQL Server por IP publica, si alguien tiene alguna solucion, tiene que ser para delphi 2009 no importa si es ADO, DBX4 u otros con tal que no sea Interbase(no me gusta la manera de como funciona) y que sea rapido no hay problema.....

gracias.

Delphius 11-11-2008 04:31:15

Hola cmm07,
No dispongo de SQL Server en mi equipo por lo que no podría probar donde está el fallo.

En el segundo post del hilo comentaste de que al instalar MAC te dio un error ¿No será por casualidad de que esto haya causado alguna anomalía?:confused: Por otro lado no nos comentas que versión de SQL Server, ni del Windows... he estado buscando en la red de redes sobre dicho error y llego a muchos foros en donde preguntan por dicho error... lo curioso es que en ninguno de todos esos foros alguien ha dado una solución. Lo que tienen en común todos estos post es que se han empleado en la mayoría SQL Server 2003. ¿Es tu caso?

Lo extraño es que dices que puedes establecer conexión en forma local, pero no a través de red. ¿Por casualidad hay algún router, swich, o algo por el estilo en el "medio"?:confused:

La verdad es que hay muchas preguntas más para hacerte, cuanto más detalles nos puedas aportar vamos a poder ser más precisos y encontrar más rápido la solución o incluso alguna alternativa.

Dices que puedes contemplar otro motor de base de datos, mientras que no sea Interbase. Porqué no pruebas, por el momento, si puedes establecer conexión con una DB en Access (de paso nos sacamos alguna duda). Hay muchos motores, el que puedo recomendar es Firebird. Se he comentado mucho al respecto de este motor (ve al sub-foro dedicado a éste), y si también podrías optar por MySQL, PostgreSQL, Oracle, Informix, entre otros.

Saludos,

Neftali [Germán.Estévez] 11-11-2008 10:44:24

Vamos a ver...
Las cosas o se hacen bien o mejor no hacerlas.
Si quieres conectar con ADO, pues postea la pregunta y las dudas uy errores que te van saliendo, pero si lo intentas hacer todo deprisa, sin explicar con detalle lo que estás haciendo y los errores que te pasan y encima vas probando diferentes cosas es imposible seguir el hilo y ayudarte.

Cita:

Empezado por cmm07 (Mensaje 325166)
Edito: Estaba revisando pero lamentablemente en ninguno sale como hacer un CLiente/Servidor y está en Access y yo necesito SQL Server, ya pude conectar la base de datos pero en el equipo local, ahora necesito hacerlo remotamente(Cliente - Servidor)

Como te dije los ejempos eran de guía para usar ADO.
Ahora que ya sabes cómo utiliar los componentes podemos seguir adelante. Conectar en local y en remoto es lo mismo simpleente que debes utilizar como nomnbre de servidor uno distinto o la dirección IP.

Cita:

Empezado por cmm07 (Mensaje 325171)
sigo sin solucionar nada , nose porque me marca ese error, que fome porque necesito urgente esto del CLiente/Servidor de SQL Server por IP publica,

Si no nos dices el error que te marca no es posible ayudarte. :(:(:(
Asegurate de que tienes acceso a la IP del servidor y que los puertos correspondientes están abiertos.

cmm07 11-11-2008 13:36:24

Hola, primero quiero agradecerles por todo lo que estan haciendo por mi, de verdad mcuhas gracias, pondré un poco más de detalles:

-Trabajo con SQL Server 2000 y lamentablemente no puedo cambiar, hoy me dijieron que no podía ser otro motor de datos

- Tengo Windows XP Service Pack 3 Profesional (el Cliente es SP2)

respecto al MDAC, antes de que lo bajase ya estaba el problema con lo del SQL por lo tanto no creo que haya creado alguna anomalía

-Utilizo un router pero me aseguré de que este no molestara, también abrí el puerto 1433 que es del SQL Server, y lo raro que lo hago con MySQL con los ZeosLib y funciona perfecto, pero como aún no llega para delphi 2009 no puedo esperar y tuve que elegir ADO.

-El error que pasa cuando intento conectar es el siguiente:
[DBNETLIB][ConnectionOpen(Connect()).]No Existe el servidor SQL Server o se ha denegado el acceso, luego hago clic en aceptar y aparece otro mensaje:
Error al iniciar sesión. No se puede recuperar la información del catálogo, y no me funciona nada.

- El formato de la Ip es la siguiente: xxx.xxx.xxx.xxx (Es una ip publica)

- y lo más raro es que puedo conectar en forma local pero solo con el Nombre del equipo: USUARIO-XXXXXXXX, pero también intenté ese metodo para conectarme remotamente y también me marco el error, también marca ese error en el equipo local pero solo cuando coloco la ip publica, porque si coloco 127.0.0.1 funciona perfecto(ojo solo en el equipo local), no sé como explicarme mejor es medio dificil lo que me sucede, pero aver si con esto me podeis ayudar...


PD: busco en google y hay varios con el mismoproblema, pero veráz que en ninguna hay una solución en concreto.

gracias.
54lu2

boreg 11-11-2008 19:04:07

A mi solo se me ocurre que en la cadena de conexion estas indicando utilizar la Seguridad integrada de Windows NT y quizás el cliente desde el que intentas conectarte no está autorizado. En fin algo más para descartar.


Saludos

cmm07 12-11-2008 01:17:53

hola, gracioas por intentar ayudar, pero lamentablemente voy a tener que descartar porque ya me seguré con seguridad integrada y sin seguridad, pero sigo investigando sobre el tema, si tengo la solución la pondre aqui..

gracias

cmm07 12-11-2008 12:50:48

Hola, estoy cada vez más cerca de mi problema, el problema no es nada que ver ni con los MDAC, ni los componentes ADO, ni OLE DB, ni Delphi, ni nada de eso, el problema es que al colocar e intentar conectar por medio de una IP, me dice que No Existe el servidor SQL Server o se ha denegado el acceso, en este caso descubrí que Se está denegando el acceso, solamente debo descubrir como permitir entradas a conexiones remotas en SQL Server 2000 y estoy al otro lado, cuando descubra esto lo pondré, si ustedes saben haganmelo saber...

gracias..

54LU2

2-D@monic 24-11-2008 06:58:51

Qué versión de Sql Server 2000 utilizas.......... que yo sepa la versión interprise ya viene pre-configurada para conexiones remotas... pero eso sería lo más lógico.... no está configurada para conexiones remotas.

cmm07 30-11-2008 14:49:29

hola pues utilizo la SQL SERVER 2000 PERSONAL alomejor no vienen con la conexiones remotas conectadas, si supieran como activar esta opcion se los agradeceria mucho.....Disculpa por responder tarde , antes no pude XD

gracias

54LU2

2-D@monic 01-12-2008 02:41:59

Ok, nunca trabajé con la versión PERSONAL pero bueno, en la enterprise 2000 (ojala que sea igual que en la PERSONAL) te vas primero al Administrador Corporativo de Sql Server (inicio->programas->sql server->administrador corporativo) donde creas las BdD, haces consultas sql, etc. una vez en el Administrador Corporativo hay una opción llamada "Propiedades de configuración de Sql Server" en el menú "Herramientas" osea menù Herramientas->Propiedades de configuración de Sql Server una vez ingresado a la opción te vas a la pestaña General y haces clic en el botón Configuración de Red, abre una ventata con dos pestañas: General y Bibliotecas de Red, en la pestaña General verás que hay dos columnas, una con protocolos deshabilitados y otra con protocolos habilitados, lo que debes hacer es habilitar el protocolo TCP/IP para conexiones remotas (llevar a la segunda columna de protocolos habilitados), y listo...... Sql Server escucha conexiones remotas en una red TCP/IP (este protocolo es el más utilizado).

Ojo que para que escuche conexiones remotas Sql Server, el Servicio debe estar iniciado...........(inicio->programas->sql server->administrador de servicios).

Tu servidor debe estar configurado (con ip, etc.)

y por si acaso el puerto de conexion remota en sql server es el 1433 por defecto (por si acaso para el firewall).

Todas estas configuraciones en el servidor.

Saludos.

cmm07 01-12-2008 11:55:44

gracias. lo probaré y comentaré luego de formatear mi pc

54LU2


La franja horaria es GMT +2. Ahora son las 02:44:05.

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