IBM Informix-SQL and the new IBM Informix Genero - sql

Did IBM recently acquire or co-label FourJ's Genero RDBMS?
Has anyone evaluated or developed apps with Genero under Windows?
Anyone know if IBM has made any modifications to Genero?
Does IBM Informix Genero provide a 4GL code generator?
I have been developing applications with Informix since 1983 (Informix 3.3 on ALTOS XENIX-based systems). Most of my users are small businesses which only require single-user capabilities. So when MS-DOS versions of Informix (i.e. from 2.10.06E (1985) to 4.10.DD6 (1991)) where available, I deployed my apps on these DOS versions of Informix.
When Microsoft Windows started gaining more popularity (circa 1990, Windows 3.1), my DOS-based ISQL apps wouldn't properly function unless the Windows-based systems where restarted in DOS mode. My apps worked fine until DOS 6.22 (Windows98).
I then tried to persuade my DOS-based users to upgrade to UNIX-based systems in order to work with supported versions of ISQL, but only a few opted to migrate. At this point, I realized that RDS had not given any priority for a migration path of ISQL or I4GL under Windows. RDS made a mediocre attempt with NewEra but that product was flawed and failed.
So, for my stubborn DOS-based users, who wanted my app to work under Windows, I provided DOS 6.22 under a virtual machine (Microsoft Virtual PC 2007) which has Windows shared folder capability (example: DOS Drive W: = a Windows Vista Desktop Folder)and Windows device support (examples: DOS drive F: = Windows Drive F: USB Flash Drive, DOS LPT1: rerouted to a Windows USB Dot Matrix Printer).
You may ask yourself why I have stuck with ISQL and not moved up to I4GL. The main reason is because my app is not that complicated, development and modification speed with ISQL is so much faster than I4GL, Perform screens allow multiple tables on same screen , Ace reports are very fast to code, etc.
When RDS stopped providing Informix for Windows, I began to look for alternatives like: FourGen, 4Js, Querix, etc. but none of them matched the development and modification speed of my ole ISQL versions. I wish IBM could provide an ISQL version which works under native Windows, I'm resistant to coding in 4GL when most mundane things are automatically handled by ISQL's Perform, Ace and SQL procs.

IBM did not acquire either 4J's the company or the Genero product. But it is now shipping a rebranded version of Genero.
People have evaluated Genero on Windows.
IBM has not made any changes to Genero.
If the 4J's Genero product includes a 4GL generator, so does IBM's Genero.
RDS (Relational Database Systems, Inc.) became Informix Software in 1987 or 1988, some considerable time before Windows 3.1, let alone Win95 or Win98, became available.
I4GL allows multiple tables on the same screen. ACE is a very useful language, but the I4GL reports are very similar and in some ways even more flexible.

Related

Database Diagram folder in Azure SQL Edge not available?

Background
I am trying to learn Transact-SQL on my M1 MacBook Pro laptop. Unfortunately Sequel Server Management Studio is not available for Macs, so I am running Azure SQL Edge through Docker.
I tried to run Azure Data Studio but alas it seems to only run for Intel based Macs and not for ARM based laptops.
Missing Folder
I am trying to establish a relationship between two tables in Azure SQL Edge but unfortunately, it requires for me to right click on the Database Diagram folder which I cannot find. Can somebody help me finding this folder?

Do I need to test applications for Windows 10 support on both LTSB and CBB?

I have a set of applications for which we want to add Windows 10 support. I expect some users to run them on Windows 10 Enterprise LTSB (Long Term Servicing Branch) and others on Windows Pro CBB (Current Business Branch). Sometimes our users keep machines off LANs for security reasons, so we can't assume much about when updates will be applied. We also can't dictate that our users get all Windows updates as a first step to troubleshooting. (It's a case-by-case basis.)
We have not historically needed to consider special editions of Windows. In the past we have tested these apps on Pro versions of Windows and Standard versions of Windows Server.
I'd like to relate this question to precedents, but I don't see an obvious correlation. For example, would an LTSB vs CBB machine comparison be more like Windows XP SP1 vs Windows XP SP2 (which was a breaking difference for us) or is it more like Windows 7 Pro vs Windows 7 Ultimate (which is insignificant for us)?
I did not see any distinctions between LTSB and CBB in Windows SDK googling and we don't expect to depend on any of the Windows apps currently excluded from LTSB. I think the main issue is whether there might be windows behavior that is changed in a "Feature Upgrade" that a CBB machine might get and an LTSB machine might not yet have. (As opposed to a "Service Update" that I hope they would both get, if receiving updates automatically.)

Free option for virtual SQL Server

I am working on an application in my free time and I want to use a SQL Server database. I have the .iso for SQL Server 2008 R2 Developer but I don't have an extra computer to dedicate as a server. I assumed I could use VMware Player for a virtual server but from what I've read it seems that I would need VMware vCenter or another paid version.
Is there a free option for creating a SQL Server database virtually? This will be extremely small scale (3 tables and just for my personal use) so I am not worried about performance at all.
You can install that locally on your computer. There is no need for a virtual engine. Even if some of the MS documents say you need a server operating system, that is not the case. The setup has a check for valid operating system, and it just installs fine on Windows XP, Vista, 7 in my experience.
But if you want, VMWare Player would also work. In contrast to its name, you can also create virtual engines with it - but with some limitations.
And for a really small solution, even SQL Server Express, which is also free, would do. If I remeber correctly, the main restriction is that the data may not exceed 1 TB.
SQL Server can run locally without any problems, even in your dev/gaming/browsing computer without creating too much interference. There is no problem in installing it for testing and even for production of small systems (the express edition is free and valid for those uses).
Another, even slimmer, alternative, if you dare to upgrade to SQL 2012, would be to use a new feature called LocalDB. It's basically the very same db engine with a very important difference: it does NOT run as a service, but instead it's a regular program that is automatically started when a connection is attempted. Advantages would be that it does not consume resources until it's needed and yet you've got almost the full feature set of the real server. Here is an introduction on it. While I've never used it (always with the full express version), it seems good for the kind of programs you want to develop.

Local databases in Windows 8, post-release

Now that windows 8 has been released, I am under the impression that a greater variety of ways for developers to use local databases in metro apps is now available to us (SQL Express LocalDB?). Up until now I have using the SQLite3 version that runs on windows 8, but know that I can I want to try and use the database features built in to Visual Studio 2012 (Won't this be better?)
To do this I am trying to follow the documentation on MSDN (here: http://msdn.microsoft.com/en-us/library/ms233763) however when I go to Project > Add New Item, I don't have a "Service-Based Database" option. What am I missing? Is there another component I need to install, or do I have it all completely wrong? I haven't used any of the sample databases mention in the documentation because I wanted to add it straight into my app. I'm using VS2012 Pro.
The Windows 8 app store api does not have any built-in database capabilities. Microsoft really wants you to use cloud storage. The documentation you're trying to follow is for windows 8 desktop applications not windows 8 store applications. You're probably best off using sqlite for the foreseeable future.

Windows CE - Database

I need to setup an application to scan a barcode from a packing slip and the associated fulfillment items on a windows CE 5.0 device and update the inventory on the server. I'm using VB.NET. However, what is the best way to interact with the database? Integration Services, ADO.NET, RDA... etc... it's a bit overwhelming trying to figure out what I should use to interact with the database. It's currently an Access database, but I imagine I'm probably going to need to migrate it to SQL Server or SQL Server Express.
I'd also need to print the packing slip to a network printer from the device. Is there any way to do this?
Sql CE is an excellent choice if your devices have to function for stretches in a disconnected state (i.e. not connected to the server). If you do use Sql CE, however, I strongly recommend not using RDA to persist local changes back to the server database (see this answer). In any event, RDA merge replication would require your server database to be Sql Server.
If your devices are always connected to the server through a wireless network, then you do not need a local database on the devices at all. Your devices can upload and download data through ASP.Net web services running on the server. Using DataSets for this communication is a good choice, since they are essentially database-agnostic (and thus your PDA code won't particularly care what database you're using on the server).
The web service approach will also let you handle the printing requirement. The PDA would send the relevant information to a web service method, which would then handle printing to the network printer.
My recommendation is to use SQL Server Compact edition (http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx) for storage engine, and ADO.net implementation of SqlCe in System.Data.SqlServerCe namespace (http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.aspx) for code interaction. They are very well integrated with Visual Studio 2008, including designer support of strong-type dataset and run-time examination of data content on device etc.
No idea about the printing.
In all today scenarios, I would recommend using SQLite. It is the most used database today. Don't bind yourself to an database ecosystem. Just go here and search for "Precompiled Binaries for Windows CE (.NET Compact Framework)". Then you have a SQLite.Interop.*.dll and the System.Data.SQLite.dll. The SQLite.Interop.*.dll has to be placed and deployed besides your EXE file. The System.Data.SQLite.dll is the managed wrapper, that you have to reference in your project. Example: Create SQLite Database and table
SQL Server Compact is not compatible to most mobile platforms like iOS, Android and so on. Microsofts support for old target platforms is poor, leaving Windows CE with only SQL Server Compact 3.5 SP2 where you don't have some essential SQL functions like "LIMIT". Databases generated on the Desktop OS (> Windows XP) will also need to be converted on the device (long delay, when you first open the database), because MS is using different code pages on desktop and Windows CE.
This is Microsofts statement about RDA:
Because of design limitations, remote data access (RDA) will be removed in a future release. If you are currently using RDA, you should consider transitioning to Microsoft Synchronization Services for ADO.NET. If you were planning to use RDA in a new application, you should instead consider merge replication or Sync Services. Note that Sync Services is currently available only for the Windows Desktop Operating System.
Best way to interact with the database is just build the database on the server, compress it als deflate (available under both Desktop and Compact via System.IO.Compression) and send it to the device in whole. Plain and stupid. Most devices have poor import performance, so doing the import locally may take too much time, even if you have a fancy sync framework.
To transfer the database you can use a WCF service or just any web server using a HTTPS GET. Like so:
// ppp_peer is in most cases the active sync connected pc
string url = #"https://ppp_peer/export/database.db.gz";
string html = string.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (FileStream fs = new FileStream(stream))
{
// Decompress your database here
}
To ORM your POCO objects just use something like https://bitbucket.org/twincoders/sqlite-net-extensions
However, if you have WLAN access everywhere, I would consider writing a browser application and using the mobile browser together with a web server for your needs. Just keep in mind, that Windows CE 5 based devices don't come with HTML 5 support out of the box. If you have a choice consider switching to a Android based device.