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 18-04-2006
hibero hibero is offline
Miembro
 
Registrado: nov 2003
Posts: 104
Poder: 21
hibero Va por buen camino
acceso a SQLServer+Delphi+ADO

Estoy tratando de acceder a SQL server desde delphi utilizando ADO. Tengo

Tabla "Clientes"
(*)IDCLIENTE (2)
NOMBRE

Tabla "Gastos"
(*)NGASTO
FECHA
IDCLIENTE(2)
CANTIDAD

(*) Indica clave Primaria
(2) Una clave externa "Foreign Key" entre estos campos


En delphi tengo un formulario con una rejilla para rellenar los datos de los clientes, no hay ningun problema.

Utilizo un TADODataSet con el siguiente SQL "Select IDCLIENTE,NOMBRE From Clientes oder by IDCLIENTE"

Tengo otro formulario con una rejilla para añadir los gastos a cada cliente. En la rejilla muestro campos de dos tablas

Utilizo un TADODataSet Con la siguiente consulta

"select g.NGASTO,g.FECHA,g.idcliente,g.cantidad,c.nombre
from GASTOS g
left join _clientes c on c.idcliente=g.idcliente
order by g.idcliente"

Esta consulta no es actualizable. Con el BDE utilizando un TUpdateObject rellenando las Propiedades InsertSQL, DeleteSQL, UpdateSQL... yo controlo como se realizan la actualización, inserción o borrrado. Con IBX si utilizo un TIBDataSet, tengo las misma propiedades para controlar como se hará la inserción, borrado, modificación de una consulta de este tipo.

Utilizando ADO como hago esto. Con ADO tengo que contentarme con lo que me hagan los componente y ya está. No pretendo actualizar dos tablas, sólo pretendo que actualice la tabla de gastos

salu2
Responder Con Cita
  #2  
Antiguo 18-04-2006
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Pq no usar DBExpress para hacer lo mismo con SQLDataset?
Asi podras tb conectar la misma aplicacion a otros motores como Oracle o Firebird..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #3  
Antiguo 18-04-2006
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Usa en el TADODataSet la consulta
Código SQL [-]
select * from Gastos

y al TADODataSet agregale un campo de busqueda a otro TADOdataset con la consulta
Código SQL [-]
select * from clientes

dime si entendiste

Santiago
Responder Con Cita
  #4  
Antiguo 18-04-2006
hibero hibero is offline
Miembro
 
Registrado: nov 2003
Posts: 104
Poder: 21
hibero Va por buen camino
creo que si, te refieres a hacerlo como se hacía con el BDE y un TTable, agregando un "Loockup Field" (campo de búsqueda), en el Componente. Así seguro que funciona, claro que eso no es mucho más ineficiente, o es asi como se ha de hacer con ADO.

¿En cuanto a DBExpress, que es mas eficiente para acceder a SQLServer?
Responder Con Cita
  #5  
Antiguo 18-04-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
podrias utilizar un maestro detalle, donde el maestro son los clientes y el detalle son los gastos, al actualizar el detalle, solo se actualiza eso, el detalle...
Responder Con Cita
  #6  
Antiguo 18-04-2006
hibero hibero is offline
Miembro
 
Registrado: nov 2003
Posts: 104
Poder: 21
hibero Va por buen camino
Cita:
Empezado por Delfino
Pq no usar DBExpress para hacer lo mismo con SQLDataset?
Asi podras tb conectar la misma aplicacion a otros motores como Oracle o Firebird..
¿ Que propiedades, componentes tendrías que usar para hacerlo ?
Responder Con Cita
  #7  
Antiguo 21-04-2006
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
Si en lugar de
Código SQL [-]
"select g.NGASTO,g.FECHA,g.idcliente,g.cantidad,c.nombre
from GASTOS g
left join _clientes c on c.idcliente=g.idcliente
order by g.idcliente"

Usas
Código SQL [-]
"select 
g.NGASTO,
g.FECHA,
g.idcliente,
g.cantidad,
(SELECT c.Nombre FROM _clientes c WHERE c.idcliente=g.idcliente) AS Nombre 
FROM GASTOS g
order by g.idcliente"
Será actualizable en todos los campos excepto en nombre
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
Hacer backup de BD de SQLServer desde Delphi SSAtab SQL 6 25-03-2008 23:09:47
delphi, sqlserver e imagenes mourockenelqui MS SQL Server 0 01-07-2005 00:08:15
trabajar sqlserver con delphi jose_2057111 MS SQL Server 2 11-05-2005 19:20:53
Delphi & SQLServer arj2000 Conexión con bases de datos 4 11-06-2004 11:37:39
Actualizar BD SQLServer alojada en servidor web con delphi hibero Internet 6 29-11-2003 01:45:26


La franja horaria es GMT +2. Ahora son las 13:18:30.


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