﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
697	DBOpen o bien función DBConnect::Create (stdlib)	Javier Portugal	Jorge	"La función Open() del nameblock que devuelve la función Create del nameblock DBConnect llama siempre a DBOpen con la estructura DBStruct:
  Real ok = DBOpen(_.alias, _.user, _.password, [[_.driver, _.defaultDB, _.server]]);

En los proyectos normalmente se crean variables en archivos .ini para guardar los distintos parámetros de una conexión a la base de datos, que son:
 - alias (ODBC),
 - usuario,
 - password
 - driver
 - base de datos y 
 - servidor.
y los valores de estas variables son los que le llegan a la función anterior, es decir, en _.defaultDB irá, como es de esperar, el nombre de la base de datos.

Esto plantea el siguiente problema:

Como todavía no hay implementaciones nativas para ciertos gestores al pasar a DBOpen el conjunto con estructura DBStruct, solamente funciona si en el segundo argumento del conjunto en lugar de dar el nombre de la base de datos le damos el alias ODBC. Esto está haciendo que creemos un código muy extraño en función de si el proyecto tiene una base de datos con implementación nativa o no (pasando como variable de base de datos el alias odbc) y/o generando errores difíciles de detectar.

Propongo como solución una de las siguientes:
  - Que si el driver no es nativo, DBOpen no use el segundo argumento del conjunto con estructura DBStruct, sino el primer argumento de DBOpen, que es siempre el alias ODBC.
  - Si por alguna razón que no veo, lo anterior no es viable, que cambiemos la implementación del método Open del nameblock devuelto por DBConnect::Create.

 Espero haberlo explicado con claridad, sino es así, por favor, escribidme por mail."	defect	closed	highest	Mantainance	Database	1.1.7	blocker	fixed		
