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)
-   -   Consultas SQL con ADO en Servidor Capa Intermerdia (https://www.clubdelphi.com/foros/showthread.php?t=58149)

Rockin 10-07-2008 11:29:04

Consultas SQL con ADO en Servidor Capa Intermerdia
 
Buenas foreros, a ver si me puedo explicar.

Tengo un servidor de capa intermedia conectado a un SQL Server 2005, correctamente. El el Servidor de Capa Intermedia tengo el ADOConnection y los DataSetProvider conectados a los ADODataSet, los cuales están los campos de la tabla añadidos en el Field Editor, indicando cual es el campo clave. No se si hasta ahora me seguís.

El problema es que al hacer consultas desde la aplicación cliente solo me deja hacer consultas del tipo
Código SQL [-]
SELECT * FROM TABLA
o
Código SQL [-]
 SELECT T1.*, T2.* from Tabla1 as T1 inner join Tabla2 as T2

S¡ intento una consulta del tipo
Código SQL [-]
 SELECT nombre FROM Tabla1
Me lanza el siguiente error 'Campo X no encontrado' siendo X un campo de la tabla que no me hace falta consultar, si lo añado en la consulta, me da el mismo error con otro campo, por lo que al final tengo que consultar siempre por * para me ejecute la consulta, cosa que no quiero.

A ver si podeis ayudarme.

Saludos y gracias de antemano.

tcp_ip_es 10-07-2008 11:50:28

Lógico, no puedes generar tfields que no existen.... es decir si tu tienes esta consulta:

Código SQL [-]
select nombre, apellidos, edad from persona

y con ella has generado los tres tfield correspondientes, luego no puedes quitar de la consulta ninguno de ellos, ya que el adoquery/tquery/zquery te los requerirá.

Saludos, Tony

Rockin 10-07-2008 12:03:43

Entend¡do, pero si no pongo los fields correspondientes, no puedo insertar, ni borrar, ni actualizar registros, ¿no? O al menos yo no los consigo hacer, no se cual es el fallo.
Seguire investigando.

tcp_ip_es 10-07-2008 12:08:57

claro que puedes en un ttable por ejemplo sería asi:

Código:

table1.fieldbyname('apellidos').asstring:='hernandez perez';
y por consulta con un update:

Código:

update tabla set apellidos = 'hernandez perez' where dni='xxxxxxx'


La franja horaria es GMT +2. Ahora son las 08:05:38.

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