on 2012 Sep 24 4:45 AM - last edited on 2012 Sep 24 6:45 AM by G_S
I'm trying to connect to a database and run a script using dbisql
. I've checked the docs and tried many combinations but I guess I'm missing something.
For example:
dbisql -nogui -c "uid=dba;pwd=sql"
results in:
((not connected)
whereas if I write:
dbisql -c "uid=dba;pwd=sql"
an Interactive SQL window opens as connected.
What I'd really like to is call dbisql -nogui -c "uid=dba;pwd=sql" myscript.sql
but I'm stuck on the first step.
Notes:
-nogui -c "uid=dba;pwd=sql"
line works with SA9 dbisql command.Update:
According to the docs, the following command should work against the default database although Links property is missing:
dbisql -c "UID=DBA;PWD=sql" -onerror exit mycom.sql
However, I get the message "You are not connected to a database". On the other hand, I can connect to the same database smoothly via Interactive SQL window (choosing 'connect to a running database on this computer'). dbping -d -c "UID=DBA;PWD=sql"
succeeds with the same connection string stating it connected to the database. The target database is started with -x none
switch.
Is there anything else I'm missing?
Screenshots:
Dbsrv12:
Dbping & Dbisql:
Dbisql window (works ok):
Request clarification before answering.
This is a long shot, but from your screen snap it looks as though you may have endashes (long dashes) on the command line instead of ASCII dashes. I can see how you could get the non-ASCII dash if you cut-and-paste the command line from the docs on Windows. You might want to try typing it in with regular dashes and see if you still have a problem?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
-c Should be a complete connections string. Probably you should add links=shmem to.
In my batch files i don't use the -nogui paramater. And I'm not getting a normal window when I run the batchfile
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I would certainly add the path to the DBSIQL call in order to prevent to call the wrong version. The environment variables are handy here, such as
"%SQLANY12%\\bin32\\dbisql" -c "..."
Are you having a SQLCONNECT environment variable that might "secretly" add stuff to your connection string?
FWIW I still usually use the dbisqlc tool for batch stuff...
@Volker Barth: Yes, I'm also setting another variable to shorten the script: SET sa12bin=%SQLANY12%\\bin32
. Checked the environment variables, but no SQLConnect variable (didn't know about them before, thanks).
I like dbisqlc too, but am afraid to use it in case it is discontinued..(don't know if there's really such a risk, but..)
I'd try to use the LOG connection parameter within the connection string to get more debug output on the connection attempts...
Good pointer. The command dbisql -c "UID=dba;PWD=sql;LINKS=SharedMemory;Log=C:\\salog"
opens an isql window, connected, and the log says Connected to database successfully
. When I add file name at the end (dbisql -c "UID=dba;PWD=sql;LINKS=SharedMemory;Log=C:\\salog" test.sql
), it says 'You are not connected to a database' and no log file is created. (Test.sql
exists, and I'm running the command in %SQLANY12%\\Bin32
directory.)
Sorry, reformatted the output - (done now):
Command: C:\\Program Files\\SQL Anywhere 12\\Bin32>dbisql -c "uid=dba;pwd=sql;LINKS=SharedMemory;Log=C:\\salog.txt"
Server console: Connection ID 1: "dba" connected to database "asusys" from SQL Anywhere 12.0.1 (3769) client over SharedMemory Connection ID 1: AppInfo is IP=x.x.x.x;HOST=xxx;OSUSER=xxx;OS='Windows XP Build 2600 Service Pack 3';EXE='C:\\Program Files\\SQL Anywhere 12\\Bin32\\dbisql.exe';PID=0xdb0;THREAD=0xed8;VERSION=12.0.1.3769;API=iAnywhereJDBC;TIMEZONEADJUS Connection ID 1: Server character set conversion is enabled, but not required using character set "windows-1254"
Command: C:\\Program Files\\SQL Anywhere 12\\Bin32>dbisql -c "uid=dba;pwd=sql;LINKS=SharedMemory;Log=C:\\salog.txt" test.sql
You are not connected to a database.
Server console: => No new lines appended to console.
AFAIK, you can use "Case Express" to report a bug or open a case:
http://case-express.sybase.com/cx/
(Your current support plan may play a role here, apparently...)
You will see this behaviour when running dbisql.exe from a Windows command prompt. For .bat file you should run with dbisql.com which is created for that purpose.
Reference: http://dcx.sybase.com/index.html#1201/en/dbadmin/dbisql-interactive-dbutilities.html
HTH
. . . "For Windows, there are two executables:"
"1.Batch scripts should call dbisql or dbisql.com, not dbisql.exe. The dbisql.com executable is linked as a console application. "
"2.The dbisql.exe executable is linked as a windowed application and does not block the command shell from which it was started. If dbisql.exe is run from a batch file, you won't see any output sent to the standard output or standard error files. "
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Well, AFAIK, if you don't specify a file extension, .com will have higher precedence than .exe (and the doc seem to cope with that), so Henginy - who does not use an extension - should already use dbisql.com, right?
User | Count |
---|---|
75 | |
30 | |
9 | |
8 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.