No me di cuenta, pero el ejecutable que publiqué en SQLite compilado para DOS, tenía un problema. No era realmente un bug, ni nada por el estilo, sino un problema de concepto.
El asunto está en que Visual C++ 2008, genera instrucciones de Pentium y superiores a la hora de compilar, que en general no sería un problema si hablamos de Win32, pero lo es absolutamente si hablamos de DOS, pues recordemos que DOS, es capaz de funcionar incluso en equipos basados en procesadores 8088.
Para ello, he actualizado los fuentes del artículo original para SQLite 3.6.23.1 (en vez de la 3.6.21), y los he compilado con OpenWatcom 1.9 RC5, esta vez generando código para 386, sin FPU, y optimizando para tamaño en vez de para velocidad. El resultado ha sido un ejecutable de 391 Kb. en comparación con los 524 Kb. del original.
Luego lo he comprimido con UPX 3.05, porque en DOS, el espacio importa, y el binario ha quedado reducido a 170 Kb. Lamentablemente la RTL de Watcom para Windows, no solamente tiene dependencias con KRNL32, sino también con USER32 y GDI32, por lo que las he tenido que añadir del correspondiente paquete de HX-DOS Extender 2.17, aunque a pesar de ello, sigue siendo una versión mucho más compacta y eficiente que la anterior.
Cuanta con las últimas novedades aplicadas sobre la rama 3.6.23.1, y es de este modo, uno de los SGBD más ligeros, y con menos requisitos hardware que haya disponibles. Mi compilación requiriendo solamente un procesador 386, 2 Mb. de memoria RAM, y el sistema operativo DOS 5.0, es ideal para usuarios de paises en vías de desarrollo que quieran practicar con SQL. Además, como una vez extraído solamente necesita 370 Kb. de almacenamiento, esto quiere decir que en discos de 3,5 pulgadas y doble densidad o en discos de 5,25 pulgadas de alta densidad, queda suficiente espacio libre para poder crear bases de datos no muy complicadas, y sus correspondientes logs.
Puedes descargar los binarios y los fuentes aquí (1,2 Mb. en formato ZIP).
Hola, intenté descargar el zip pero antes de terminar la descarga marca un error, al aprecer está mal grabado el archivo en el servidor. Pdrías decirme de que otro lado lo puedo descargar?
Saludos y gracias
SALOMON, acabo de descargar el archivo, y he verificado que es correcto.
¿Con que estás intentando descomprimir el ZIP?
Hola, el problema no es al descomprimirlo, ni siquiera se termina de descargar, casi al terminar la descarga aparece el siguiente mensaje
No se pudo guardar C:\Documents and Settings\SALOMON\Mis documentos\sqlite3.6.23.1-dos-watcom.zip.part porque no se pudo leer el archivo origen.
Ya lo intenté con firefox y con Explorer y sucede lo mismo
Saludos
SALOMON, te he enviado el paquete a tu email. Sinceramente no entiendo cual puede ser el problema.
Si no es mucho preguntar, ¿a que se debe que usando Windows Vista/7 te hayas decidido por probar la versión para DOS?
Ignoro porque se haya baneado mi respuesta, no incluí nada inapropiado en ella 🙁
Hola
Al parecer el archivo comprimido contiene un archivo infectado con algún virus 🙁
Te recomiendo que mandes el archivo DKRNL32.DLL al correspondiente laboratorio, ya que con algunos productos da un falso positivo.
Una vez lo hayan analizado y te quedes tranquilo (por mi parte te puedo decir que lo está: http://www.virustotal.com/file-scan/rep … 1289244103), desactiva el antivirus, e instálalo.
En todo caso, forma parte de la distribución de HX-DOS extender, por lo que si quieres, lo puedes obtener también de ahí.
Hola, otra vez yo 🙂
No habia tenido oportunidad de probar la compilación de Sqlite que hiciste para DOS, ahora lo instalé en una máquina virtual con FreeDOS pero a la hora de querer crear una tabla en una base de datos recien creada me marca «error database is locked»
No se a que se deba 🙁
Saludos
Hola, detecté que el problema se presenta cuando incio FreeDOS con la opción «Load FreeDOS with JEMMEX», pero si incio con «Load FreeDOS with EMM386» funciona bien (hasta ahora)
Saludos
Muchísimas gracias por tus comentarios Salomón.
No creo que el problema esté tanto en JEMMEX, sino más bien que en general FreeDOS no es un software demasiado compatible, así que probablemente la causa sea la combinación de FreeDOS con JEMMEX, que es todo sea dicho, una joya.
Mi consejo es que la máquina virtual la hagas con MS-DOS, PC-DOS, o preferiblemente DR-DOS/Enhanced DR-DOS.
Hola, soy yo otra vez, jeje
Estoy retomando el proyecto de hacer algo con sqlite en DOS, al tratar de compilar un programa con el copilador DJGPP y tus archivos de sqlite (utilizo #include «sqlite3.h») me marca un error en el archivo sqlite3.c, que no encuentra el archivo pthread.h
Estoy usando gxx myprog.cpp sqlite3.c -o myprog.exe -lsqlite -lpthread
Como debo de compilar mi programa?
Saludos
Hola Salomón,
Si quieres compilar bajo DJGPP, necesitarás unas dependencias extra sobre los fuentes de SQLite. No te servirán directamente mis fuentes, ya que estos no dejan de ser una compilación para Windows, pero envuelta en HX DOS Extender.
Te recomiendo que le eches un vistazo a http://www.bttr-software.de/forum/forum_entry.php?id=12278