Application: Squirrel-SQL Client
Category: Development
Description:
"SQuirreL SQL Client is a graphical SQL client written in Java that will allow you to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands etc.
(Source: Description of SourceForge Page for SQuirrelSQL Client)
Download Squirrel-SQL Client Portable 3.7.1.0 Development Test 4 @ DropBox
Download Squirrel-SQL Client Portable 3.7.1.0 Development Test 4 @ GitHub
[42,15MB download / 50,80MB installed]
(MD5: 46158741d31641039eb207c78a2faae0)
Requirements:
1. local installed Java on machine or Java from PortableApps
2. place your JDBC driver jars at ".\Squirrel-SQLPortable\Data\db-drivers\" to import them automatically during start
Release Notes:
-------------------------------------------------------
Development Test 4 (2016-10-26):
- update to new version 3.7.1 of Squirrel-SQL Client
- resolving problem with "java.io.tmpdir" that avoids some JDBC-Drivers working correctly
- renamed "kn-squirrel-sql.bat" file to "start.bat"
-------------------------------------------------------
Development Test 3 (2015-09-16):
- update to new version 3.7 of Squirrel-SQL Client
-------------------------------------------------------
Development Test 2 (2015-08-24):
- use portable Java if available otherwise use machine default Java
- changed directory for JDBC drivers
-------------------------------------------------------
Development Test 1 (2015-08-07): Initial release
Hi there, YT, Squirrel isn't one of my favourites (don't like JDBC as a rule) but if you're just looking for someone to check out basic stuff I'll give it a go. Unlikely I'll use it long term so please say if there is anything specific you'd like checked. I have SQLite and Postgres db's mainly but familiar with others.
Wm
Hello Wm ...,
actualy I have no special tests.
But I would be delighted if you test it in any way.
YoursTruly
Have you done something unusual in packaging?
Wm
I am not sure what you mean with "Unusual packaging". To be honest its my first real work for PortableApps.
So it might be that I made a mistake with packaging.
The only thing that is special from my point of view is the batch file that takes care about loading the JDBC drivers at startup.
tried again just now, Win8.1 doesn't like it at all.
I'm getting unusual (to me) warnings, e.g. OS level SmartScreen is objecting strongly.
First time I've seen this.
I don't think you're bad and I'm not the PA paf expert but looking inside the paf.exe I'm wondering if you've used the wrong line endings in the bat files or something as simple as that?
Otherwise I think I'm going to have to do some hand work to see what the diff is between yours and a conventional Squirrel SQL install (I've had a look inside the zip)
Wm
Hello WM...,
thanks for feedback. Unfortunatly I don´t own a copy of Win 8.1 and Win 10 as well. I only tested it on XP and Win 7.
My changes are simple (If you want you can also compare with squirrel):
- new file "SquirrelSQLPortable\App\kn-squirrel-sql.bat"
- changes in "SquirrelSQLPortable\App\squirrel-sql-3.6\squirrel-sql.bat":
-> use of self defined variables from ""SquirrelSQLPortable\App\kn-squirrel-sql.bat""
-> affected lines:
...
set TMP_CP="%SQUIRREL_SQL_HOME%\squirrel-sql.jar;%DB_DRIVERS_LIST%"
...
start "SQuirreL SQL Client" /B "%LOCAL_JAVA%" -Xmx256m -Dsun.java2d.noddraw=true -Duser.home=%SETTINGS_DIR% -cp %SQUIRREL_CP% -splash
The problem might be the gathering of JDBC driver jars. May you test if the problem still exist if you comment out the following block in "SquirrelSQLPortable\App\kn-squirrel-sql.bat", please?
setlocal EnableDelayedExpansion
for /L %%n in (1 1 500) do if "!__cd__:~%%n,1!" neq "" set /a "len=%%n+1"
setlocal DisableDelayedExpansion
for /r %DB_DRIVERS_DIR% %%g in (*.jar) do (
set "absPath=%%g"
setlocal EnableDelayedExpansion
set "relPath=!absPath:~%len%!"
set "DB_DRIVERS_LIST=!absPath!;!DB_DRIVERS_LIST!"
)
----
EDIT:
----
What I currently read in the web seems that this prompts also occure if the programm is not certificated (What it actually is). So maybe also this is the problem.
We're in luck. As it happens I have a working XP system.
Just tried it on that and it installs fine.
This is good news as Squirrel SQL works on Win 8 and above so now it is just a case of working out what is preventing your packaging installing on my Win 8.1.
I don't have time to check more right now but the XP system had (non-portable) Squirrel SQL installed before so maybe it is picking up something left over that is missing on my current 8.1
The point is these are esoteric issues and a it would be useful if a second tester would try as it might allow us exclude any odd settings I might have.
Request: second tester, please. You don't need to know a lot about databases for this as it is the install we're checking.
TIA
Wm
Hi Wm ...,
I googled a little bit around and I found out that the security settings in Win 8 are changed (compared to XP and 7).
So what I found was that it might be the problem that the programm is not signed with a certificate.
But I am not very familar with this.
If some has a hint to the problem, please tell us.
when you said (first post)
===
Requirements:
1. installed Java on the system where to use
===
I thought you'd use a PA/CommonFiles/Java if available
Edit: if you don't want to use an existing PA/CommonFiles/Java for testing I think you should change the instructions up top to be clear. Long term I think it would be beneficial if you used the PA Java if available if only because (if you remember our Ruby conversation) you will have good idea what is there.
P.S. Sorry it took me so long to work this out!
Wm
I am not sure
===
2. place your JDBC driver jars at ".\SquirrelSQLPortable\App\DefaultData\db-drivers\" to import them automatically during start
===
is normal Portable Apps practice as the user is writing into the App directory which is normally only used by the App itself and is liable to be overwritten if the App is updated (I see there is a 3.7RC-ish available).
The import mechanism works nicely in my small test with postgres, it is the directory I am wondering about. I would have thought that a directory in Data would fit the PA model better.
If you are unsure, please check with other devs to see what they have done.
Wm
Hello Wm...,
thank you very much for the results.
In case of the directory for the DB drivers I agree. I think its better to put the drivers in "\SquirrelSQLPortable\Data\db-drivers". Because this is the directory for working data (Please correct me if I am wrong).
About the Problem with Java:
I will try to figure out how the solution for this may be constructed. But it will take a while.
Thank you for testing.
YoursTruly
-----------------------------------
EDIT:
It was easier to change the java than I expected.
Please see the updated link to new version at the first post.
-Y-T-
-----------------------------------
if you think about a manually installed xpi for FF or TB, the installed plugin is "part of the app" but the installer parallel (in this case the db driver) is external so the new dir looks right to me.
minor thing: in emglish machine not maschine (not important to meaning)
===
in a test it uses the PA java before system java (which I think is right for most situations)
===
in a test it uses drivers from the new (better) place
===
YT, this is looking good to me. I think you should be proud of your work.
A possible future issue is that if no-one uses it, it will languish as a beta forever
Anyway, it was nice to work with you
Wm
Hello Wm...,
Great
And thank you for the hint of the typing mistake.
Well I hope it will be used. And as soon as Squirrel 3.7 is released I will prepare a new package.
Thank you for testing and hopefully we meet again each other in some other project.
Best regards
YT
I think
===
Squirrel-SQLPortable
===
not
===
SquirrelSQLPortable
===
small thing, doesn't matter to me so long as it is consistent
Wm
I had problems with SQLite under portable latest
works OK under standard install v 3.7
Wm
I just downloaded, installed and tried it righ now and it won't run. DOS screen opens but nothing else happens.
I just found the issue. The aplication could not use the portable Java. I forced it (in the squirrel-sql.bat file) to use the standard Windows javaw.exe instalation and voilà!
@rem if exist "%IZPACK_JAVA%\bin\javaw.exe" (
@rem set "LOCAL_JAVA=%IZPACK_JAVA%\bin\javaw.exe"
@rem ) else (
set LOCAL_JAVA=javaw.exe
@rem )
I am not the packager but did some testing before, you should NOT be changing
\PortableApps\Squirrel-SQLPortable\App\squirrel-sql-3.7\squirrel-sql.bat
IF you need to tweak something you should change the bat file above that
\PortableApps\Squirrel-SQLPortable\App\kn-squirrel-sql.bat
and report here so any problems can be fixed for everyone
it should use your portable java if available or fall back to the system java, since it isn't can you give some things that might help debug this
OS
location of PA dir
location of PA java
version of PA java
location of system java
version of system java
how are you starting the app? from the PA menu or some other way?
Please address before moving on to the next point as the expected location of the drivers is set in the bat I mention above
Wm
I opened the aplication from the PA menu.
I copied and pasted all driver into the db-drivers folder and the application won't start again...
are you familiar w. non-portable SQuirreL ?
I ask because depending on what drivers you copied into the
\PortableApps\Squirrel-SQLPortable\Data\db-drivers
directory it might not help at all or, as appears to be your case, possibly even stop it from working
an example of a driver that works is, for postgres
\PortableApps\Squirrel-SQLPortable\Data\db-drivers\postgresql-9.4-1200.jdbc41.jar
but first you must undo the changes to the wrong bat file
Wm
Yeah, I'm familiar to SquirrelSQL. I've been using it along many years.
I agree and I will undo my changes to squirrel-sql.bat
But, what next instructions to make it work?
empty
\PortableApps\Squirrel-SQLPortable\Data\db-drivers
put one driver you know works into the directory
make sure that works
then add others one by one each time checking they work
the dev (YT), correctly to my way of thinking, decided not to put all the SQuirreL drivers in the directory for 2 good reasons
1) it is against the general unnecessary size consideration of PortableApps
2) there is no way for the dev or me or you (3 people so far) to know which drivers work
I work with postgres and sqlite and mysql NON-portably so those are the ones I test.
I have never used and will probably never use most of the drivers that come standard with SQuirreL so to my mind it is dumb to copy them all into your portable directory. Particularly if you don't know how each of them works.
Wm
Hi YT, as you can see someone else is testing your package, which is nice.
Looking again I think it would be better if
\PortableApps\Squirrel-SQLPortable\App\squirrel-sql-3.7\squirrel-sql.bat
where as per the standard install and all changes were in your bat file above if only to avoid people changing things they may not understand.
Also, I am wondering if it might be worth adding a note about which drivers should be copied into the
\PortableApps\Squirrel-SQLPortable\Data\db-drivers\
directory. I had to remind myself as I don't use JDBC and SQuirreL every day
Wm
I just changed the squirrel-sql.bat to debug and I found a flaw.. I known what I was doing.
I was making a general comment to the dev who I abbreviate as YT
remember, as far as we know you are only the second person to test this
Wm
Hi. Alright, thanks.
I just reverted the incorrect changes on squirrel-sql.bat and worked on the right .bat, as per your instructions. I just found the issue is caused because the script can't get the correct path to the portable javax.exe.
The second line of kn-squirrel-sql.bat sets the variable that defines the partial path to the portable javax.exe . The flaw is here...
I really don't know how to manipulate the construction of this path onto this variable.
I really appreciate the efforts to get it work prorpely.
Second challenge is make it work with the plugins. I noted it will need some work as well.
please ck what I asked before ,you only answered one
===
it should use your portable java if available or fall back to the system java, since it isn't can you give some things that might help debug this
OS
location of PA dir
location of PA java
version of PA java
location of system java
version of system java
===
you are yourself, surely, seeing why I am asking these questions because you are coming up against the very issues I mentioned. Please be helpful by answering.
The reason for me asking about the java first is that other developers who don't know about databases but DO know about PA and Java may be able to help. We have good resources but we should define our local problem first so we can ask the right question.
In this case, for example, I think we need someone that knows about PortableApps & Java NOT databases, I'll wait for your reply
Wm
if you tell me what plugins you use, and they fit with what I use, I can try them
but once again, like with the drivers, try them one at a time on a need basis, otherwise you will be wasting your own time
I remind you gently that a Portable SQuirreL, (just like a Portable FireFox) is NEVER going to be tested against all permutations, it can, however, be tested with the permutations of a third tester if they say what their requirements are
Wm
Hi all,
at first sorry for late reply. Last year was full of plenty of work.
I managed to find out whats the problem in case of SQLite JDBC driver. the problem is the java.io.tmpdir in my case.
So currently I have a workaround and thinking about how I will set it in the Batch-File.
For the reason please see the link: "https://github.com/xerial/sqlite-jdbc/issues/97"
In case of the Java Problem. I see some room for improvements because java version will currently not be checked before start. But I don´t have an idea mind about this currently.
Kind regards
-Y-T-
For everyone who dislikes DropBox I added a GitHub link now
and version 4?