PDA

Ver la Versión Completa : Conectar con DBGo a SQLServer


hibero
09-02-2006, 01:26:13
Quiero conectar con SQL Server utilizando DBGO = ADO, Tengo experiencia con Firebird, pero con ADO me pierdo un poco. Conoceis documentación que pueda iir mirando

salu2

Neftali [Germán.Estévez]
09-02-2006, 09:32:52
Bueno con ADO es muy sencillo:

(1) Coloca un ADoConnection en tu formulario.
(2) Doble click en la propiedad ConnectionString; Te saldrá la ventana de conexión.
(3) Use connectionString y pulsar "BUILD"
(4) Pestaña Proveedor: Microsoft OLEDB Provider for SQL Server
(5) Pestaña Conexión: Rellena la dirección/nombre del servidor y el usuario y contraseña.
(6) Selecciona la Base de Datos y pulsa "Probar conexión"

Con eso debería funcionar.

hibero
09-02-2006, 16:35:27
quizas me xpresé mal. Si se como conectar un TADO conection, utilizar un TADQuery o un TADOTable. Los objetos son muy parecidos a los de IBExpress. No es ahi donde me pierdo.
Lo que no consigo entender como hacer actualizable un TADOQuery. En IBX tengo el componente TIBDataSet que tiene las propiedades, SQLSelect, SQLInsert ... Pero en ADO como lo hago. Se que pùedo usar TADOtable, para manejar una tabla, algo muy parecido a BDE+Parados+TTable. Pero eso no creo que sea muy eficiente (o si). En el caso que tenga una ficha, solo muestro un registro, pero si utilizo un TTable realmente voy a manejar una tabla entera, cuando en realidad con un TQuery solo manejaría un registro

salu2

Neftali [Germán.Estévez]
09-02-2006, 16:55:40
Siempre puedes utilizar un ADOTable y posicionarte en el registro que necesites o filtrarla para que sólo te muestre el registro deseado.
Otra opción es utilizar un ADOQuery; en ese caso podrás actualizar siempre que la consulta sea actualizable.
Si Haces un SELECT sobre una tabla, podrás lyego hacer el Update, pero si generas una consulta con JOIN's, a la hora de hacer el Update obtendrás en consiguiente error.

hibero
09-02-2006, 17:24:52
ese es el caso que no tengo claro. La tipica consulta que devuelve valores de varias tablas (con un join por ejemplo). Eso es una consulta "no actualizable". Hay forma de hacerla actualizable.
En cuanto a posicionarme en un registro con un TTable y filtrar, no es mas eficiente usar un TQuery al estilo where clave_principal=2. Solo me traigo un registro. Con un Ttable, nada mas conectarnor me traigo bastantes registros (Corregidme si estoy equivocado)

Neftali [Germán.Estévez]
10-02-2006, 09:47:49
La tipica consulta que devuelve valores de varias tablas (con un join por ejemplo). Eso es una consulta "no actualizable". Hay forma de hacerla actualizable.

Sólo se me ocurre que vuelvas a realizar la consulta sobre la tabla pertineente utilizando la clave que puedes extraer de la consulta "no-actualizable". No se si me he explicado.

En cuanto a posicionarme en un registro con un TTable y filtrar, no es mas eficiente usar un TQuery al estilo where clave_principal=2. Solo me traigo un registro. Con un Ttable, nada mas conectarnor me traigo bastantes registros (Corregidme si estoy equivocado)

Es correcto; Lo que pasa es que si no estás familiarizado con SQL, pues el tema de los Querys te puede costar un poco; Pero si te apañas bien, para buscar yo prefiero un Query+Where.

hibero
10-02-2006, 22:15:11
Sólo se me ocurre que vuelvas a realizar la consulta sobre la tabla pertineente utilizando la clave que puedes extraer de la consulta "no-actualizable". No se si me he explicado.

puesdes clarificarme un poco mas gacias.

Supongamos que tengo un TDBGrid, enlazado a un TQDOQuery. La consulta es de las no actualizables (tiene un join etc). Si edito un campo del TDBGrid como guardo los cambios. Si añado una fila como añado la fila a la base de datos.
Utilizando el BDE, en la misma sotuación, podía untilizar un objeto TUpdateSQL. Dentro de este objeto rellenando adecuadamente las propiedades, se encargaba de hacer las actualizaciones.
Utilizando IBX, puedo usar un TIBDataSource, este componente tiene las propieadades SelectSQL, InsertSQL ... etc con las cual puedo hacer editable una consulta que realmente no lo es.
Utilizando ADO, ¿no hay nada? para esto

salu2 y gracias por vuestras respuestas