Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-01-2011
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
indexfieldnames, field not found

Buenas de nuevo,
Aqui sigo peleando.

Intento poner un query1.indexfieldnames:='codigo';
pero a la hora de ejecutar el programa me dice que field not found 'codigo'.

En tiempo de diseño, si le meto en propiedades al query en indexfieldnames si me lo acepta y me lo ordena, pero en ejecucion no.

Ya probe a desactivar el query antes de usarlo y viceversa, a cerrar el query antes de y a abrirlo despues de.

No entiendo porque no le lo admite.

un saludo y gracias
Responder Con Cita
  #2  
Antiguo 02-01-2011
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Que yo sepa el Query no tiene la propiedad IndexFieldNames, sino la Tabla prueba con una tabla y verás como funciona, tienes que poner el nombre del campo indexado no el nombre del índice.

Si quieres poner el nombre del índice utiliza IndexName.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 02-01-2011
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias.

El caso es que ya lo habia usado pero con sqlite en vez de firebird. Pero de todas formas en la propiedad del tzquery (zeos) si me aparece indexfieldnames, y en timepo de diseño si se ve que funciona el indexado poniendo el mismo campo.

No se que pasa la verdad.
Responder Con Cita
  #4  
Antiguo 02-01-2011
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Hola denuevo,

Es una cosa curiosa lo que pasa.

Al crear el form, le pongo

query1.sql.clear;
query1.sql.text:='select * from lineasventa';
query1.sql.text:='select max(codigo) AS CONTADOR from lineasventa';
query1.Open;
CONTADORREGIS:=query1.fieldbyname('coNTADOR').AsInteger;

**Esto último para que señale el ultimo registro puesto que nose como aplicarlo al generador de autoincremento que aplique en la tabla.**

query1.open;

Eso me funciona, pero si le pongo otra línea

query1.sortedfields:='codigo';

me dice que no lo encuentra.

En cambio en otro procedimiento que aplico lo mismo si me funciona y en otro diferente no.


Sabeis a que se puede deber?, estan mal aplicadas las instrucciones?.
Responder Con Cita
  #5  
Antiguo 02-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por anubis
query1.sql.clear;
query1.sql.text:='select * from lineasventa';
query1.sql.text:='select max(codigo) AS CONTADOR from lineasventa';

query1.Open;
CONTADORREGIS:=query1.fieldbyname('coNTADOR').AsInteger;
query1.open;
Eso me funciona, pero si le pongo otra línea
El primer query1.sql.text le dices que es "select * from lineasventa'
Luego le asignas: select max(codigo) AS CONTADOR from lineasventa
O sea, la primera asignación no sirve para nada.
Responder Con Cita
  #6  
Antiguo 02-01-2011
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
cierto casimironotevi, ya me di cuenta , le fui cambiando y quitando lo que no sirve para ver un poco mas donde esta el problema, pero sigo sin saber porque en algunos sitios me funciona el sort y en otros me dice que no existe el campo.

Responder Con Cita
  #7  
Antiguo 03-01-2011
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Hola.

Date cuenta que el sql que se ejecuta es
Código Delphi [-]
query1.sql.text:='select max(codigo) AS CONTADOR from lineasventa';
Ahí no devuelve ningún campo que se llame codigo, mientras que en
Código Delphi [-]
query1.sql.text:='select * from lineasventa';
devuelve todos los campos de la tabla, que probablemente contendrá codigo.

Saludos,
__________________
http://www.gestionportable.com
Responder Con Cita
  #8  
Antiguo 03-01-2011
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias pacopenin,

Correcto, por eso despues de poner eso, le vuelvo a poner:

Código Delphi [-]
zconnection1.Database:='g:\leerdes\ventas.fdb';
  zconnection1.Connected:=true;
  qquery1.Connection:=zconnection1;
  query1.sql.clear;
  query1.sql.text:='select max(codigo) AS CONTADOR from lineasventa';
  query1.Open;
    CONTADORREGIS:=query1.fieldbyname('coNTADOR').AsInteger;

query1.clear;
query1.sql.text:='select * from lineasventa';
query1.open;
query1.sortedfields:='codigo';
query1.open;

No tendría porque no dejarme ordenarlo.

Por lo que estoy viendo, al aplicar despues
Código Delphi [-]
query1.sql.text:='select max(codigo) AS CONTADOR from lineasventa';

antes tengo que poner en blanco el sortedfields
y si, efectivamente así funciona mejor.


Por cierto, a grandes rasgos, cual es la diferencia para estas cosas entre activar y abrir.?
Me imagino que el open cuando has ingresado alguna modificacion o insertado algun registro y el active es simplemente para consultas?

Última edición por anubis fecha: 03-01-2011 a las 15:32:50.
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
Duda sobre IndexFieldNames en un ClientDataSet M. FM. Conexión con bases de datos 1 03-02-2010 16:38:24
DBExpress e IndexFieldNames Oxa78 Conexión con bases de datos 3 23-09-2007 01:43:25
Solución para el error "Field ID not found" Calderin Conexión con bases de datos 5 24-11-2004 11:18:26
EdatabaseError FIELD NOT FOUND en consulta JOIN syntetiko SQL 5 02-10-2004 00:35:31
IndexFieldNames, problema!!1 erfedecai Conexión con bases de datos 7 07-06-2004 13:04:20


La franja horaria es GMT +2. Ahora son las 17:25:04.


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