Lightweight SQLite Editor for Windows
github.com
github.com
They were all replaced with SSMS, which was a slow abomination.
Query Analyzer is my favourite SQL editing environment to this day. It was incredibly snappy, could render thousands of rows without skipping a beat and had a nice explain visualisation built in. If there was a modern rewrite that supported PostgreSQL, I'd buy it in an instant.
There are screenshots in these articles if anyone's interested:
http://etutorials.org/SQL/microsoft+sql+server+2000/Part+II+...
https://www.sqlservercentral.com/articles/using-query-analyz...
It is great, but Query Analyzer-alike it is not.
It’s pretty fast for a Java tool, but I wouldn’t call it snappy.
Query Analyzer was written with win32-api. No electron, no java, no c#, nothing (thought it might used MFC, not sure about that). It was snappier on Pentium 3 than Dbeaver is on M1 or Threadripper. Existence of slow molasses like Electron won't change that.
Java's UI libraries are extremely prone to wrong initialization. If you skew from the reference guide's implementation, Java's libraries try to mend the problems themselves, but this adds observable latency to the UI.
Of course, Java is never as fast as natively compiled language, but asymptotically approach to that speed and come pretty close. The funny thing is, some of the today's native applications are both heavier and less responsive w.r.t. their Java counterparts. This is because we tend to add loads of dependencies which aims to simplify development in said language, but that price is always paid at the end. Either once by the developer, or repeatedly by the user.
(Of course, what do I know. I use DataGrip for my databasing these days. It's fine.)
I still mostly use ADS for the git integration, file comparison, terminal, and file picker though.
SSMS only for those admin tasks where it has a nice GUI, or when ADS breaks in some way (happens a lot).
This seems to offer way more.
Curious about this one.
https://github.com/Trivadis/sqldev-jdbc-proxy
Oracle SQL Developer is a Java clone of Toad from Quest software:
https://www.oracle.com/database/sqldeveloper/
Toad also bears a resemblance to the Windows app in the post.
Been using this for years. Fantastic tool.
It's fast, does what I need it to, is open source ... great little tool.
My understanding of Big query is that at least some of the tech it's based on allows for handling very large datasets. I'm talking being able to search BI that is petabytes in size. I don't think it's really designed for small datasets.
If you can stick the data in SQLite, I think you're using the wrong tool.
Searching around, it looks like BI Engine may help in cases like this. See: https://cloud.google.com/blog/topics/developers-practitioner...
https://nightlies.sqlitebrowser.org/latest/
We're really overdue for making a new official release, but the nightly builds are pretty stable in the meantime. :)
What a chore! Enter vi where you can see a window into large parts of the file while editing it at the same time. It was a quantum leap in productivity for sure especially because I could work form a terminal (as opposed to jumping to a different system more geared towards word processing etc.)
But for SQLite databases I am somehow still fooled into thinking I am content, when in a terminal, to issue INSERT/UPDATE commands to make changes and SELECT commands to see those changes is adequate.
If this is the equivalent of ed…
> sqlite3 my.db
UPDATE table …
SELECT …
…and if this post is linking to a GUI equivalent of Microsoft Word 6.0, then is there instead a vi equivalent for editing database tables, and what is it?WinMain builds the window and starts the message pump. The pump is implement starting at line 425. It's basically a while loop that reads the next message on the stack, translates it, then sends it to the object it belongs to.
It's the precursor to today's modern event-driven designs. Basically, this is now done for you by the runtime.
The bulk of the action happens in the created window's "wndproc", cbMainWindow (Line 455 - 2897).
There's a giant switch statement, with each handled message being a separate case. There's also a WM_COMMAND message, which is essentially a message holding another message inside.
This is probably the best book on Win32 API programming out there.
https://www.amazon.com/Programming-Windows%C2%AE-Fifth-Devel...
One thing to note before going into Win32: You're going to have a pixelated, upscaled ui if you don't take care of high dpi support yourself, and that involves patching system controls. So prepare yourself for lots of dpi-work if that's a concern. (One thing I've been experimenting with is superclassing the system controls and "overwriting" the original by registering a superclass of eg. the edit control as simply "edit". This makes other system controls, like the combobox, use your dpi scaled/custom version).
Also, question: do you know of a good way to test for high-DPI mode on a low-DPI screen?
https://building.enlyze.com/posts/writing-win32-apps-like-it...
Try a combo box on high dpi. The arrow button gets a lot thinner than on 96 dpi.
And I did just try what you said and the combo box fine to me: https://imgur.com/a/Mb83tPj
Win XP came out 22 years ago.
If I remember & get a chance later I can try to make a minimal example.
Edit: Based on this comment [1] I'm guessing you're on something like Windows 8.1 rather than a recent version of Windows 10 or later.
[1] https://www.reddit.com/r/programming/comments/d77mf7/comment...
And with a basic Win32 GUI I can bet my pumpkin latte what it as fast as SQLite itself.
I was thinking about this recently that so many projects on Github missing screenshots. I was thinking to make PRs to at least show some basic functionality.
Sure it's an cute and to-the-point codebase, but even if I have experience with using these API's I'd never volunteer to work on this codebase because it's obviously also one that's a creation of the authors memorized experience.
It was super fun and the code was super easy to read and edit. Immediate mode made our job much easier.
But you couldn't even copy paste!
Win32
> can't just cross-compile
Suppose that you only use a specific operating system. Even if you could cross compile, how would you verify that it actually works? How would you know the specifics of each operating system and adapt you application to work well in such situation so that user don't flame you? It's just not that easy. And don't get me started on making GUI applications.
Side note: As a Windows user, In this case I really appreciate the look and feel of the native GUI. It feels like a "real" Windows application. You would not get that if you cross compiled.
A lot of times, I just want a tool to do ad-hoc CSV work, and don't want to fiddle with a terminal.
Kinda like OpenMPT...indicate the supported Wine version in the Downloads maybe, and then after seeing it running just fine, one could argue that there's not even much point to a Linux port.
Sibling post here mentioned using under wine but I'm not sure if that's the best idea since wine might not translate locking semantics in the same way and those might be plenty important to avoid corruption with SQLite databases.
Would the semantics of the Linux based application (with SQLite compiled for Linux) correspond to the UI (with SQLite compiled for Windows) running through an API emulation layer (Wine) that potentially translates semantics to run Windows applications as "natively" as possible.
Sure it might, but I wouldn't put money on it until verified. (Luckily backing up SQLite databases isn't too hard)
edit: tested it, and yes it works (though sometimes you have to resize window to get updates for some reason...)
As opposed to the stuff nowadays that seem to be marketed first, made by whoever has the least power to ignore the job, and using some abysmal javascript GUI framework that can't even keep up with desktop framerate.
I also miss the days when the tools I used to do my job didn't HIDE shit from me, like error messages. Sure, I might not know what "ExtremelyExplicitNullException in doFrobThrob" means, but when I paste that error message in the support email, the engineer on the other side knows the exact line of code that error was generated on, and which variable was broken, and 9/10 times that's enough to actually find the root cause and fix it. No telemetry required. I'm so tired of vague, numbered error messages that nobody knows what line of code it corresponds to and nobody cares anyway because it's just going into a giant pile in the telemetry system that nobody except one mediocre PM is allowed to pull bugs from.