PDA

Ver la Versión Completa : Recorrer Campos de Un Registro


Jvilomar
21-11-2005, 14:21:54
Saludos mis amigos...

Mi pregunta es la siguiente: tengo una tabla con ciertos datos... y necesito realizar unas operaciones registro a registro donde a cada registro necesito recorrer ciertos campos para actualizar unos datos. Me explico.. por ejemplo tengo la tabla1 y en ella los campos codigo,mes1,mes2...mes12 ahora bien lo que necesito es recorrer todos los meses para ver sis dos o mas de los campos meses concecutivos tienen el mismo valor para entonces hacer una especie de agrupamiento. me gustaria una idea aproximada de cual seria la mejor forma de realizar esto... tengo SQL Server 2000 y Delphi 6.

Gracias Anticipadas...

Neftali [Germán.Estévez]
21-11-2005, 15:29:01
Deberías ser un poco más concreto; Preguntas por la idea para realizarlo, pero no comentas si tienes problemas en algo concreto, si has hecho algo o todavía no has empezado...

La idea genérica es fácil.
(1) Recorre la tabla (whie con condición (not eof))
(2) Para cada registro consulta el valor de los campos: Tabla1.FieldByName(...)
(3) Y luego haz lo que necesites.
(NOTA) SQLServer + D6; La mejor forma de acceder es vía ADO; TADOConnection + TADOTable.

Si la pregunta no es más concreta, la respuesta tampoco pueder serlo. :(

Jvilomar
21-11-2005, 20:46:11
Perdona... neftali... tienes razon...

El problema radica en que en realidad no eh podido enfocarme en como realizarlo. o sea.. estoy pensando en groups y cosas asi... habia pensado algo parecido a lo que dices.. lo de recorrer la tabla lo se.. eso seria registro a registro, dentro del bucle while not table.eof lo que deseo es recorrer los campos del registro en cuestion... pero habia pensando en por ejemplo como son 12 meses recorrer los campos con un for. De todos modos gracias.. tratare de hacerlo por mi mismo y luego entonces pondre la pregunta...

:o

Xianto
22-11-2005, 09:06:14
Lo que dice Neftali del While lo necesitas, para que no te de error, más alla de eso me... imagino que buscas algo como esto:


While Not ADOQuery.Recordset.EOF Do
begin
For x := 0 to ADOQuery.Recordset.Fields.Count -1 Do
begin
valor_campo := ADOQuery.Recordset.Fields[x].Value;
nombre_campo := ADOQuery.Fields[x].DisplayName;
tipo_campo := ADOQuery.Fields[x].DataType;
end;
ADOQuery.Recordset.MoveNext;
end;


Bue, saludetes !