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

 
 
Herramientas Buscar en Tema Desplegado
  #28  
Antiguo 17-12-2008
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 22
Sick boy Va por buen camino
Talking

Hola,

Hasta el momento, la modificacion ha funcionado correctamente.

Lo que hice fue lo siguiente:

1.- Añadir una variable MDO_Unique_Cursor en MDOUtils.pas
Código Delphi [-]
var
  MDO_Unique_Cursor: Integer = (aqui va el valor más bajo de un integer, ahora no lo recuerdo);

2.- Añadir la función (en MDOUtils) que incremente nuestra nueva variable.
Código Delphi [-]
function Valor_Cursor_MDO:string;
begin
  try
    inc(MDO_Unique_Cursor);
  except
    MDO_Unique_Cursor:= low(integer);
  end;
  result:= inttostr(MDO_Unique_Cursor);
end:
He utilizado un bloque try..except porque creo que será más rapido que un if..then..else. Ya me he equivocado un monton de veces en este hilo, puede que me equivoque en esto tambien.

3.- En MDOSQL.pas, buscar el TMDOSQL.Prepare, y sustituir la linea donde se asigna el valor al cursor por esta:
Código Delphi [-]
FCursor := Name + Valor_Cursor_MDO;

Si utilizas IBX o FreeIB, seria algo parecido, aunque yo comentaria la asignación del cursor en el .Create. Al ya ha explicado porque es mejor.

Aunque el valor de Name (haciendo un uso "normal" del componente TMDOQuery, TMDODataset) siempre es vacio, el cursor funciona sin problemas.
Supongo que el componente TMDOSQL si que pasará el valor de Name al crear el cursor. No lo he probado, y no lo necesito.

El typecast, al principio no me funcionaba, luego recorde que hay que hacerlo en la misma unit donde tengas los componentes, y asi si que funciona.

Como digo, Name no es necesario, salvo que seais capaces de acabaros todos los numeros integer en poco tiempo. Si este fuera el caso, recomendaria pasar el valor Name mediante un typecast, o con un overload del create como se sugiere en el foro.

La rutina para "cifrar" no contiene la formula de la coca cola , se trata solo de evitar que el usuario pueda cambiar algunas cosas.
Estas rutinas estan en la web por todas partes, yo no se si las vi por primera vez en trucomania.
Tienen varios inconvenientes, por ejemplo, el texto no siempre es legible, puede tener caractares no imprimibles, y si lo guardas a un archivo luego no es descifrable.
Admito sugerencias, pero como esto del cifrado deberia estar en otro hilo, enviarlas por privado, y si es necesario comentar algo iniciamos el post en el foro correspondiente.

No podeis imaginaros lo agradecido que estoy por la ayuda que desinteresadamente me habeis proporcionado. Ojalá algún dia tenga los conocimientos necesarios como para devolver(os) el favor.

GRACIAS
Responder Con Cita
 



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
Mensaje de error extraño Sick boy Firebird e Interbase 0 12-12-2008 11:22:26
Error Extraño SysAdminGCS Varios 1 18-08-2007 16:30:49
Error Extraño Esau SQL 4 17-06-2005 22:44:16
error extraño gilberto_1126 Varios 2 05-09-2004 01:01:01
Error Extraño Esau OOP 5 19-11-2003 18:01:32


La franja horaria es GMT +2. Ahora son las 06:36:32.


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