Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Problema con la creación de Indices (https://www.clubdelphi.com/foros/showthread.php?t=21171)

apicito 09-05-2005 17:21:05

Problema con la creación de Indices
 
Utilizo Ibo+Firebird y la siguiente rutina para la creación o reconstruccion de los indices:

Código:

procedure TCheque.Indice(Nome,Tabla,Campos:String);
begin
  Query.Close;
  Query.SQL.Clear;
  Query.SQL.Text:='select RDB$INDEX_NAME from RDB$INDICES '+
    'where RDB$INDEX_NAME='+#39+Nome+#39;
  Query.Open;
  if not Query.IsEmpty then
    begin
      Query.Close;
      Query.SQL.Clear;
      Query.SQL.Add('drop index '+Nome+';');
      try
        Query.Open;
      except
        Imprime('No se ha podido Eliminar el INDICE '+Nome+' en '+Tabla);
        Transa.Rollback;
      end;
      Transa.Commit;
      Imprime('Eliminado Indice '+Nome+' en '+Tabla);
    end;
  Query.Close;
  Query.SQL.Clear;
  Query.SQL.Add('create index '+Nome+' on '+Tabla+' ('+Campos+')');
  try
    Query.Open;
  except
    Imprime('No se ha podido crear el INDICE '+Nome+' en '+Tabla);
    Transa.Rollback;
    exit;
  end;
  Transa.Commit;
  Imprime('Creado Indice '+Nome+' en '+Tabla);
  Query.Close;
end;

y lo llamo de la siguiente manera:

Código:

Indice('RES_NUMERO','RES','RES_TIPO,RES_ANO,RES_NUMERO');
y solo consigo este error: "FIeldNº: -1 not found". y los campos que incluyo existen en la tanbla. De hecho si inserto por consola este comando:
Código:

create index RES_NUMERO on RES (RES_TIPO,RES_ANO,RES_NUMERO);
funciona correctamente.
Alguien me puede ayudar?:

apicito 10-05-2005 19:52:31

¿A nadie le suena a que puede deberse este mensaje de error?

rastafarey 13-05-2005 23:47:10

resp
 
Mira no he leido mucho el codigo.

Pero solo te puedo decir que usar .open No te va funcionar con intrucciones sobre la base de datos debes usar .excute. No te estoy diciendo que ese sea el error

apicito 20-05-2005 07:22:04

Cita:

Empezado por rastafarey
Pero solo te puedo decir que usar .open No te va funcionar con intrucciones sobre la base de datos debes usar .excute.

Efectivamente ese era el problema. Gracias por la respuesta.


La franja horaria es GMT +2. Ahora son las 17:36:34.

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