Ir al contenido


Foto

Error code 551 en FB Embebida + Zeos


  • Por favor identifícate para responder
14 respuestas en este tema

#1 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 01:16

Estoy haciendo unas pruebas con la versión embebida de FB 2.5 a 32bits (naturalmente, compilando para 32bits) y luego de un pequeño traspié (me había olvidado que era 32bits y pretendía compilar en 64bits  :p  ) al configurar la conexión pude lograr que se conecte. Pero, tengo un problemita que me llama la atención.

Resulta ser que cuando intento hacer un select a una única tabla que tiene la DB de prueba me arroja esto:

 

[Window Title]
Error

[Content]
SQL Error:  no permission for read/select access to TABLE TABLA1. Error Code: -551. This user does not have privilege to perform this operation on this object. The SQL: SELECT * FROM TABLA1
;

[Aceptar]

 

Como bien saben, utilizo CodeTyphon 5.6 y Zeos 7.2.0-alpha.

La base de datos es bastante simple.Este es el script:

 

/******************************************************************************/
/*            Generated by IBExpert 2015.6.17.1 26/01/16 15:45:38             */
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES NONE;

SET CLIENTLIB 'xxx\Prueba FB Embebed\App\fbembed.dll';

CREATE DATABASE 'xxx\Prueba FB Embebed\App\PruebaEmbebed.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET NONE COLLATION NONE;



/******************************************************************************/
/*                                   Tables                                   */
/******************************************************************************/



CREATE TABLE TABLA1 (
    ID      INTEGER NOT NULL,
    NOMBRE  VARCHAR(30),
    FECHA   TIMESTAMP,
    VALOR   DOUBLE PRECISION
);



/******************************************************************************/
/*                                Primary keys                                */
/******************************************************************************/

ALTER TABLE TABLA1 ADD CONSTRAINT PK_TABLA1 PRIMARY KEY (ID);

 

NOTA: Por cuestiones de seguridad, reemplacé el directorio padre por xxx.
 

Y me he asegurado de que dicha tabla tenga algunos registros. Obviamente que al ser embebida tengo que estar conectando y desconectando para estar trabajando entre IBExpert y Lazarus.

 

El proyecto no es más que un form con un ZConnection, un ZQuery, un TDataSource y un TDBGrid. Al activar el ZQuery arroja dicho error.

La sentencia SQL es muy básica:


sql
  1. SELECT * FROM TABLA1

Por lo que no tiene demasiada ciencia. Ya sea en tiempo de diseño como en ejecución recibo este error. Y no encuentro alguna referencia de por donde puede estar el problema. Esta misma consulta desde el IBExpert trabaja bien.

 

En el directorio donde se encuentra la aplicación tengo todo lo que provee el zip de la embebida excepto la carpeta doc. Por lo que la carpeta \App tiene esto:

 

aliases.conf

fbembed.dll

firebird.conf

firebird.msg

ib_util.dll

icudt30.dll

icuin30.dll

icuuc30.dll

msvcp80.dll

msvcr80.dll

proyect1.exe

proyect1.ico

proyect1.lpr

proyect1.lpi

proyect1.lps

proyect1.res

PRUEBAEMBEBED.FDB

unit1.lfm

unit1.pas

/intl

/lib <--- este es generado por Lazarus. Ahí se almacena todo los archivos de compilación

/udf

 

Noto que en el script de la metadata no figuran los grants ¿Tendrá algo que ver?

 

A ver si me hechan algo de luz.

 

Saludos,


  • 0

#2 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 02:52

En SO Windows > Vista? No sera un problema de permisos?


  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 03:17

Windows 8.1. Es que si fuera cosas de permiso también debería rechazar el acceso a IBExpert también. Y me aseguro de conectarme y desconectarme cada vez que pruebo desde Lazarus como en IBExpert.

 

Saludos,


  • 0

#4 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 03:50

Puede depender del privilegio del programa

PD: En el titulo pusiste 501 y en el msg 551 :)


  • 0

#5 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 04:11

Estoy tratando de reproducirlo

 

Como tenes configurada la ZConnection?


  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 04:51

Las propieades más importantes:

 

Database = D\...\App\PRUEBAEMBEBED.FDB

LibraryLocate = D\...\App\fembebed.dll

User = SYSDBA

password = masterkey

Protocol = Firebird-2.5 // Aunque también probé con Firebirdd-2.5

HostName = '' // es embebido. No se necesita, valor en blanco por defecto

Port = 0 // valor por defecto

 

Las demás propiedades están con los valores por defecto. Y no he cambiado nada.

Empleo ZEOS-7.2.0-alpha (Según leo en la propiedad Version del ZConnection) bajo CodeTyphon 5.6.

 

Empleo Firebird 2.5.3.26778-0 Embebed 32bits. Y obviamente para trabajar con 32bits, me valgo de la versión 32bits de CodeTyphon: Typhon32.

 

Saludos,


  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 04:52

Puede depender del privilegio del programa

PD: En el titulo pusiste 501 y en el msg 551 :)

 

Error de dedo, ya corrijo.

 

Saludos,


  • 0

#8 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:03

Amigo Marcelo, no logro reproducirlo:

Mi configuracion es casi idéntica, te listo las diferencias:

 

Version Zeos: 7.2.0-beta

 

Tambien coloque la propiedad ClientLibrary a la ruta donde esta la fbembed

 

CodeTyphon:

Version: 5.6

Date: 2016-01-04

FPC: 3.1.1

 

Firebird (lo acabo de bajar)

- Firebird-2.5.5.26952-0_Win32_embed

- Firebird-2.5.5.26952-0_x64_embed

 

OS Win10 64 bits, me conecto a FB usando la fbembed.dll de 64 bits logicamente

 

Con la fbembed de 32 bits no logro conectar, supongo que porque el ejecutable esta compilado como Win64

 

No logro compilar en 32 bits con CT, esto es lo que hago:

 

Project -> Project Options -> Compiler Options -> Config and Target:

 

Target OS: Win32

 

Ya al cambiar esta propiedad y darle a test me indica que no logra encontrar ciertas unidades:

 

ERROR: compiled FPC unit not found: system.ppu
ERROR: compiled FPC unit not found: objpas.ppu
ERROR: compiled FPC unit not found: sysutils.ppu
ERROR: compiled FPC unit not found: classes.ppu
ERROR: compiled FPC unit not found: avl_tree.ppu
ERROR: compiled FPC unit not found: zstream.ppu

 

 

He intentado desde el CodeTyphon center recompilar FPC para Win32 pero sigue todo igual


  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:04

Por si sirve de algo: Con la misma versión de Firebird, en su arquitectura Super Server 64bits (y por supuesto: Typhon64) en otros proyectos, o uno nuevo de prueba la cosa anda bien.

Y empleando los mismos Zeos.

 

Saludos,


  • 0

#10 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:07

Para hacerlo en 32bits debes emplear el propio CodeTyphon 32bits que te debería haber generado durante la instalación. Mira la foto:

 

Tienes razón. Dice 7.2.0-beta y no alpha. Despiste mio de la locura. Si no logras hacerlo por 32bits prueba directamente con 64bits embebido.

 

Saludos,

Archivos adjuntos


  • 0

#11 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:10

Por cierto he visto que en el directorio del proyecto se genera un archivo firebird.log

Dentro de el no hay algo de utilidad?

 

Hay bastante rollo en las versiones mas nuevas de windows con el 32 y los 64 bits; de hecho, si no estoy muy mal de la cabeza, en win10 ya son obsoletos los programas de 32 bits. Para que todo funcione, corre todo bajo una capa de emulacion (seguro que te suena cierta carpeta SysWoW64) que se encarga de acomodar llamadas API de programas de 32 bits para que sean compatibles con las de 64 bits

 

Voy a hechar un vistazo, seguramente solo instale la version de CT de 64 bits

 

En la carpeta C:\codetyphon\typhon solo tengo la bin64 y no la "sólo bin"


  • 0

#12 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:14

Con 64 bits embebido funciona perfecto, pero me interesaria lograr compilar en 32 bits para despejar toda duda


  • 0

#13 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:30

En el log no hay mucho disponible sólo tengo esto:

 

MARCELO-PC    Tue Jan 26 16:20:16 2016
    Shutting down the server with 0 active connection(s) to 0 database(s), 2 active service(s)

 

Lo de 32bits y SysWOW64 más o menos lo tengo en cabeza. Hasta donde yo estaba enterado eso es cuando una aplicación 32bits requiere acceso para, en este caso de Firebird, a un server y base de datos en 64bits.

 

En teoría si todo está hecho para 32bits no debiera de haber problema. Lo WoW es cuando se debe comunicar 32 con 64. El mismo IBExpert, al menos al versión que tengo instalada, es 32bits. Desconozco si las nuevas versiones que hayan estado saliendo ya tienen soporte directo 64btis. Y justamente para que funcione comunicarse con Firebird 64bits requiere que se indique la fbclient wow, que puede encontrarse en la carpeta WoW64 dentro del directorio de Firebird.

 

Para la base de datos embebida en 32bits que tengo no hace falta cruzar nada. Simplemente se le asigna la propia que viene en el zip.

 

Lo de CT en 32bits tengo entendido que por defecto CT ya genera todo para 32bits y 64bits. Si es que se determina que el equipo puede soportarlo.

 

Saludos,


  • 0

#14 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 05:37

Lo que estoy pensando ahora es que quizá algo se corrompió cuando empecé el proyecto. Por costumbre empecé a hacer el proyecto con CT64bits y luego cuando me di cuenta del error, cerré y directamente abri el mismo proyecto con CT32bits sin hacer un backup y recompilando encima.

 

Haré 2 pruebas desde cero:

App2 tendrá la embebida 32bits, usando CT 32bits.

App3 tendrá la embebida 64bits, usando CT 64bits.

 

Si con ellas también tengo problemas... ya es para cortarse las venas. :(

 

Saludos,


  • 0

#15 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 enero 2016 - 06:47

Muchachos, ¡Matenme! Evidentemente (o al menos eso creo y puede haber sido lo más probable) metí la pata justamente cuando había empezado el proyecto anterior por error en 64bits. Acabo de terminar de realizar la prueba App2 con la misma versión de Firebird 2.5.etc 32bits embebida, creando una nueva base de datos (sólo por las dudas), y esta vez asegurándome de ejecutar CodeTyphon 32bits, siguiendo los mismos pasos que se pueden recabar en el hilo, y todo anda perfecto.

 

No creo que haga falta comprobar que el problema sea la versión embebida de firebird, e irme hacia la prueba App3 ya con 64bits. Como siempre el error está en la capa 8 del modelo OSI. :angry:  8o|   :D

 

Esto va para nota mental. :lol:

 

EDITO: Falta probar que tal marcha esta demo simple al zipear y colocar en un entorno libre de desarrollo. A ver si alguno de mi familia quiere ser conejo de prueba.

 

Saludos,


  • 1




IP.Board spam blocked by CleanTalk.