--- In [email protected], "zsmeier" <zsmeier@...> wrote: > > Hi, > I have a problem calling isql.exe from a windows batch file, which is > called from a running service. > > I wrote a simple java program, which calls a windows batch script with a > parameter: > System.exec("c:\Temp\hook.cmd foo"). > > The batch script first writes a select statement into a file using the > parameter: > echo select if from users where name = 'foo' >> c:\Temp\statement.sql > ...and second calls the isql.exe command with the file as input > parameter and an output parameter to write the result > <PATH_TO_FIREBIRD_BIN>\isql.exe -user sysdba -password masterkey > <PATH_TO_DB>\database.fdb -i c:\temp\statement.sql -o c:\temp\result.txt > I run this Java program from a console, it works just perfect, I have > the results in the result.txt. Great! > Installing the Java program as a windows service, the result.txt remains > empty. The hook.cmd is called, the statement.sql is generated, but > then... there are no results in the result.txt. > > Has anybody an idea? Had anybody a problem like this? > Has this something to do with "current user" if the application runs as > a Service (Which is SYSTEM)? There is not possible to connect with isql > if the user is not the current windows user? > > Any help or clue would be greatly appreciated! Thanks. > > Zsolt. >
I could resolve the problem, starting the service using my windows user. I still not really understand why does work now, because in the script log the user calling the isql.exe is still SYSTEM. Anyway it was a windows user / windows rights / windows services problem.
