XBase
De MasFoxPro Wiki
Tabla de contenidos |
[editar] Compiladores de dialecto XBase
Buenas,
Probablemente entre las alternativas se puedan considerar:
[editar] Harbour
Compilador de código abierto que en 9 años aun no logra alcanzar la versión 1.0
[editar] xHarbour
Desprendimiento del proyecto Harbour pero esta vez saborizado comercialmente, que aun sigue en estado experimental y ronda la Beta que se considera final desde 2005 - Costo: USD 900.
[editar] (x)Harbour
Producto ampliado de Harbour (debido a un distanciamiento entre Patrick Mast y Antonio Linares, su impulsor principal) que intenta ser completo pero que en realidad está lleno de contribuciones de las cuales depende.
[editar] Xbase++
- Novedades en Xbase++ 2.0 (proximo a salir)
http://www.alaska-software.com/products/product-outlook-2007-2008.pdf
- Soporte de Tablas de datos FOX (todas sus versiones).
- Soporte de tipo de datos DATETIME.
- Acceso directo a PostgreSQL como si fuera una tabla nativa.
- Stored procedures escritos en sintaxis xbase (quiere decir, genérica).
- CXP - Compiled Xbase Pages. Páginas HTML generadas dinámicamente a partir de código xbase.
- BOBI - Arquitectura orientada a Web Services con sesiones persistentes.
- Hay más.
Xbase++ es la evolución del Clipper y muchísimo más.
Hay OOP, Threads, COM (ActiveX, Automation), persistencia de TODOS los tipos
de datos, usa tablas FOX de todos los sabores incluyendo sus índices,
también pueden usarse Sockets, POP3, SMTP, HTTP, XML, SQL Server, etc.
Puedes usar las DLL del Sistema Operativo, o las hechas con Delphi o C++, o
crear las tuyas.
- El preprocesador es super potente y te permite crear tus propios comandos.
También existe un API para el preprocesador y puedes crear tus propios programas interpretables en tiempo de ejecución. Puedes crear clases dinámicamente, enviarlas por internet y ejecutarlas en un equipo remoto. Cuando digo crear clases, significa que tambien puedes crear el objeto a partir de esa plantilla. Es decir, creas un formulario desde la nada (no estaba dentro del PRG), le pones controles, lo llenas y lo mandas con datos y todo a otra terminal. Allá lo cargas y ejecutas como si fuera nativo del programa que tiene el usuario. Eso es dificil de hacer con cualquiera de los demás dialectos. Hay muchas cosas para ver en ese producto.
El sitio no es muy bonito pero el compilador y sus utilidades funcionan muy bien. Soporta redes como Novell, Windows, Linux con Samba y varias más. Tiene un esquema de bloqueo automático de tablas que te evita hacer los Rlock() y Unlock() pues los hace él sólo. A diferencia de los demás dialectos, puede usar archivos de textos CSV con un índice, archivos SDF con indice CDX.
[editar] Ejemplos de Acceso a Datos
#include "Common.ch"
#include "Odbcdbe.ch"
PROCEDURE DbeSys
DbeLoad( "ODBCDBE" )
DbeSetDefault( "ODBCDBE" )
RETURN
PROCEDURE Main
LOCAL cConnect, oSession
cConnect := "DBE=ODBCDBE"
cConnect += ";DRIVER=SQL Server"
cConnect += ";Server=(local)"
cConnect += ";UID=sa"
cConnect += ";PWD=password"
cConnect += ";DATABASE=AdventureWorks"
oSession := DacSession():new( cConnect )
IF .NOT. oSession:isConnected()
? "No pude conectar al servidor!"
? oSession:getLastMessage()
DO WHILE INKEY(1)==0
ENDDO
QUIT
ENDIF
USE "HumanResources.Employee"
Browse()
CLOSE ALL
oSession:disconnect()
DO WHILE INKEY(1)==0
ENDDO
RETURN
PROCEDURE Main
LOCAL aDatos := { 5, 10, 15, 30, 50, 45, 20, 10, 2 }
LOCAL oXL := CreateObject( "Excel.Application" )
LOCAL oXLGrafico
LOCAL nLen, cIndex, i
oXl:visible := .T.
oXL:WorkBooks:Add()
nLen := LEN(aDatos)
cIndex := ""
FOR i:=1 TO nLen
cIndex := LTRIM(STR(i))
oXL:Workbooks(1):Sheets(1):Range("A"+cIndex):Value := aDatos[i]
NEXT
oXL:Workbooks(1):Sheets(1):Range("A1:A"+cIndex):Select
oXLGrafico := oXL:Charts:Add()
oXLGrafico:Type := xl3DColumn
// No recibir avisos de sobreescritura de archivos.
oXL:DisplayAlerts := .F.
// Crear una copia de respaldo de la planilla activa:
oXL:ActiveWorkbook:SaveCopyAs("C:\Work\ActiveX01\XlsChartBAK.xls")
// Guardar la planilla actual.
oXL:WorkBooks(1):SaveAs("C:\Work\ActiveX01\XlsChart.xls")
oXL:Quit() // Cerrar Excel
oXL:destroy() // Destruir la instancia
oXL := NIL // Liberar el contenido para el Colector de Basura
RETURN
Es en mi opinión el más estable y de mayor crecimiento de los herederos de Clipper. Baste con mirar la lista de proveedores y socios de negocios:
Funcky, Roger Donnay, FiveTech, y varios más http://www.alaska-software.com
De todos los productos mencionados, sólo Flagship, C3 y Xbase++ son auténticos compiladores que producen código de máquina y no requieren del apoyo de una bolsa interminable de productos de terceros.
Espero haber ayudado.
También me interesé por XBase hace algún tiempo; sé que tiene varios "puntos a favor". Lo que no me gustó es que su sintaxis es Clipper, y no deseo aprender otro lenguaje de programación.
Lo mejor que tiene el preprocesador de Xbase++ es que podes CREAR TUS PROPIOS COMANDOS al estilo Fox. Además tenés verdadera orientación a objeto. Si, estoy de acuerdo en que la caja no es bonita. Pero produce ejecutables que no pueden ser descompilados entre otras cosas. Otermin
[editar] DBASE
Buenos dias:
Hace un tiempo me topé con la web de dBase [1]
Que son los herederos del Dbase de Borland de toda la vida, Y resulta que tienen un completo IDE muy parecido al FOX. Incluso con la ventana de comandos y todo.
Es un perfecto RAD integrado, con diseñador de Formularios, Menús, Informes, BD, etc. etc. Y además genera auténticos Ejecutables.
Todo en un mismo producto como nuestro querido FOX. Vale la pena darle un vistazo
Un Saludo.
--ElektrodarK 03:58 23 mar 2007 (PDT)
Hum. Seria bueno saber si alguien lo ha probado para ver que tan rapido es. Porque generalmente el gran problema de los clones de xBase, a excepcion de nuestro querido Zorro, es que generan ejecutables inmensos y la velocidad de ejecucion del codigo deja mucho que desear.
VictorEspina 05:28 23 mar 2007 (PDT)
Excelente producto...!!! Lo mas parecido que existe a nuestro querido VISUAL FOX.
También lo he probado y su modo de operación es asombrosamente similar al zorro.
En las pruebas que hice con tablas (pruebas muy simples con tablas bastante grandes) no me pareció ver una diferencia sensible con VFP. Eso sí, no hice las pruebas con todo el "rigor científico" sino de manera muy empírica, y a simple vista no se pudo notar una diferencia con el rendimiento de VFP.
Claro que si me hubiera puesto a medir las "décimas de segundo" y otras pruebas con bloqueo de tablas en una LAN de seguro hubiera encontrado diferencias. El punto es que para el "usuario común" creo que no habría diferencia de rendimiento. Si no fuera porque solo corren en WINDOWS, sería mi primera herramienta de elección. ---
HernanCano M-03-Marzo-2007 00:30am
Deseo poner mi grano de arena, aunque no sea usuario de DBase.
Le aclaro a ElektrodarK que DBase no es clon, es el "original". Microsoft compró FoxPro, pues era el que mejor competencia (en cuanto a eficiencia, facilidades de programación) le hacía.
Creo que, si continúa con apoyo (por parte de Borland), puede ser nuestra elección.
Me adhiero a ElektrodarK y a VictorEspina, pues mencionan que lo han probado.
Bueno quiero agregar que estos señores de DBASE quieren adoptar a los futuros huerfanitos de VFP (saben que somos una comunidad muy grande y dinámica y que les vendría bien tenernos entre sus filas) y estan lanzando una oferta de su producto dBase Plus específicamente para nosotros usuarios de FoxPro por solo $99 dólares hasta fin de este mes de junio.(http://www.dbase.com/FoxProUpgrade.asp) lo único que piden es fotocopia de factura de Fox o simplemente fotocopia del CD o diskettes de instalación, esto quiere decir que hasta los que aun usan foxpro 2.6 y tienen los disquettes originales podran tener esta oferta, vaya que es una inversión mínima y yo no me pude resistir y ya hice el tramite de compra pues el valor de lista de la herramienta es de $879.
RodolfoArias 12-Junio-2007
Antes de considerarla, me gustaría saber del futuro de DBASE, se, del pasado pero y que del futuro, prometen un Dbase de 64bits? porque de "Futuro" es lo que estamos huérfanos!! no sea cosa de agarrar otro muerto.! Gracias.
[editar] Recital 9
Entre las alternativas XBASE que corren en windows y linux, tambien se olvidaron de incluir a recital 9, que incluye una herramienta para migración de proyectos hasta la versión 8.0 SP1, entre sus novedades pude ver :
Cross-platform Visual FoxPro 8.0 compatible SQL with local cursor engine including all SQLxxx() functions
Enhanced Visual FoxPro 8.0 language and function compatibility Backwards compatible with earlier versions of Recital, FoxPro 2.6, SCO FoxBASE, and Clipper ANSI SQL syntax compliant Navigational and SQL data access Active Data Dictionary Supports stored procedures, triggers and user-defined functions written in Recital, Visual FoxPro or any .NET language Broad cross-platform support; Windows, Linux, Unix, and OpenVMS Row level locking Low-level ISAM C API for high performance C/C++ embedded non-server database access ODBC compatible C API for C/C++ embedded non-server database access Full text indexing and searching Complete support for SQL subqueries Extensible using dynamically loadable C function and class libraries Flexible security system with column-level protection Extensible with our new C OBJECT API for building dynamically loadable class libraries in C/C++ Trap hard to find bugs using the new ASSERT command Enhanced integrated XML language support providing Microsoft ADO.NET XML data import and export Enhanced built-in Client/Server capabilities with universal data access via open system gateways Now supports Visual FoxPro 8.0 database events including CHECK and ERROR Now supports MySQL extensions including CREATE/DROP/USE DATABASE and running .sql files Now supports Very Large Databases (tables larger than 2GB) up to 2^63 bytes Now supports joins across multiple databases using the database!table command syntax Now supports nested transactions Now supports enhanced database security with built-in DES3 encryption Now supports 32-character field names Now supports 256 columns per table Now supports NULLs Now supports DateTime and Currency data types Now supports nested SQL SELECT statements Now supports SQL UNIONs Now supports structured error handling using TRY/CATCH/THROW...FINALLY Now supports Auto-Increment fields New native ODBC driver for Linux that works with PHP Saludos
[editar] Otras Alternativas XBASE
Como no tenía muy claro donde ubicar esto lo pondré aqui... ya que (aunque no busco otro FoxPro si) me gustaría (creo que a todos nos gustaría) que una serie de funcionalidades estuviesen presentes en la nueva herramienta (las utilizaba en FOX y me "alegraban" mucho la vida):
- Generador de informes integrado, como lo voy a echar de menos :,(
- Clases y herencia
- Macros (de estas podría prescindir ya que la mayoría que utilizaba eran en sentencias SQL)
- FDU's en sentencias SQL
- Muy orientado al tratamiento de bases de datos (que en el fondo es a lo que yo me dedico)
- Aun siendo de alto nivel se podía (dios ya hablo en pasado del Fox) acceder a API's y DLL's (aunque de forma algo "por los pelos" que nadie se ofenda)
- Rapidez al programar.
- Rapidez tratando datos (propios y ajenos) ultimamente ya me había decantado por MySQL
Por otra parte no me importaría dejar a un lado ciertas características del FOX, como son:
- Su dependencia de las DLL's en los ejecutables y su "riesgo" de decompilación de exe
- Su ligazón a Microsoft y Windows
- Orientación a sistemas de bases de datos tipo SQL (vale que el FOX la tenía pero...)
- Buscar empleados con conocimientos de FoxPro era/es muy complicado
Una sugerencia: en mi caso y supongo que en el de muchos no me importaría (de hecho lo estoy haciendo) plantear la busqueda de una nueva herramienta desde el punto de vista del framework y no del compilador en si, me explico. Para mi sería muy apetecible la idea de empezar con una serie de herramientas que me facilitasen el olvidarme de ciertas cosas (como el interface y todos sus requisitos, aunque se que esto al 100% imposible) y me permitiesen centrarme más en la lógica de negocio.
