powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / [ASA] Выполнить скрипт из командной строки
12 сообщений из 12, страница 1 из 1
[ASA] Выполнить скрипт из командной строки
    #39462202
avtor2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!
dbisql версии 12.0.1.3152.
В папке c:\test лежит база test.db. В оконном режиме подключаюсь к ней без проблем, указав логин, пароль и путь. Нужно выполнить скрипт из командной строки
Код: sql
1.
dbisql -с "START=dbsrv12 -c 8M;Server=test;DBN=test;DBF=c:\test\test.db;uid=DBA;pwd=SQL" mycom.sql


Результат:
Код: sql
1.
You are not connected to a database.


Что я делаю не так?
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462602
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя точно серевер еще не запущен?
Если у тебя сервер уже работает, а ты повторно пытаешься его запустить в старт-стоп режиме, то может быть конфликт двух серверов пытающихся добраться до одного и того-же файла базы, в итоге второй сервер обламывается...
Да и запускать сетевой движок в старт-стоп режиме не кошерно.
Сделай:
Код: plaintext
1.
2.
dbsrv12 -c 8M c:\test\test.db
dbisql -c"ENG=test;uid=DBA;pwd=SQL" -nogui mycom.sql
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462622
Автор2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первая команда успешно:
TCPIP link started successfully

Потом:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
C:\Program Files\SQL Anywhere 12\Bin32>dbisql -с "eng=test;uid=dba;pwd=sql" -nogui c:\test\mycom.sql
You are not connected to a database.

C:\Program Files\SQL Anywhere 12\Bin32>dbisql -с "dbn=test;uid=dba;pwd=sql" -nogui c:\test\mycom.sql
You are not connected to a database.

C:\Program Files\SQL Anywhere 12\Bin32>dbisql -с "eng=test;dbn=test;uid=dba;pwd=sql" -nogui c:\test\mycom.sql
You are not connected to a database.



Кстати, в оконном режиме к запущенной базе тоже подключиться не получается. Это нормально?
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462667
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я рекомендовал бы
dbsrv12 -n TEST -x TCPIP -c 8M c:\test\test.db
т.е. имя енжина test, коннект только по TCP/IP, ограничение памяти в 8 метров, имя базы test
dbisql -c "ENG=TEST; commlinks=tcpip{ip=..., port=...}; dbn=TEST;uid=DBA;pwd=SQL" mycom.sql
А что у вас d mycom.sql, ведь там то же можно задавать параметры коннекта к базе...
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462670
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наврал
dbisql -c "ENG=TEST; commlinks=tcpip{HOST=..., port=...}; dbn=TEST;uid=DBA;pwd=SQL" mycom.sql
Кстати когда вы запускаете сервер, то там пиктограмка должна светится...
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462686
Автор2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey OrlovА что у вас d mycom.sql, ведь там то же можно задавать параметры коннекта к базе...Там пока простой инсерт для проверки. Как там задавать?

Sergey Orlovdbisql -c "ENG=TEST; commlinks=tcpip{HOST=..., port=...}; dbn=TEST;uid=DBA;pwd=SQL" mycom.sqlА в HOST и port что писать, имя своего компа? А если на другом выполнять (имя не известно)?

Sergey OrlovКстати когда вы запускаете сервер, то там пиктограмка должна светится...В трее? Да, молния появляется, если в оконном режиме коннектиться. И немного другая, когда dbsrv.
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462926
avtor2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполнил последовательно из командной строки
Код: sql
1.
2.
3.
dbsrv12 -n TEST -x TCPIP -c 8M C:\test\test.db
dbisql -c "ENG=TEST; commlinks=tcpip{HOST=127.0.0.1,port=2638}; dbn=TEST;uid=dba;pwd=sql" c:\test\mycom.sql
dbstop -c "ENG=TEST; commlinks=tcpip{HOST=127.0.0.1,port=2638}; dbn=TEST;uid=dba;pwd=sql"


Получилось!
Но когда занёс всё это в батник, то он запускает базу и останавливает выполнение. Как с этим бороться?
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462940
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если запускаем
dbsrv12 -n TEST1 -x TCPIP -c 8M c:\test\test.db
то
Автор2017Sergey OrlovА что у вас d mycom.sql, ведь там то же можно задавать параметры коннекта к базе...Там пока простой инсерт для проверки. Как там задавать?
пишем в mycom.sql
CONNECT USING 'UID=DBA;PWD=SQL;DBN=TEST;ENG=TEST1;'
Автор2017Sergey Orlovdbisql -c "ENG=TEST; commlinks=tcpip{HOST=..., port=...}; dbn=TEST;uid=DBA;pwd=SQL" mycom.sqlА в HOST и port что писать, имя своего компа? А если на другом выполнять (имя не известно)?
HOST=<ip адрес компа на котором запущен энжин>
port=<порт, который слушает энжин, по умолчанию 2638>
Можно без указания этих параметров
dbisqlc -q -c "eng=test1;dbn=test;uid=dba;pwd=vtng;commlinks=tcpip;" mycom.sql
при этом поиск будет произведен широковещательными пакетами, которые при наличии маршрутизаторов обычно не транслируются в другие сегменты
Автор2017Sergey OrlovКстати когда вы запускаете сервер, то там пиктограмка должна светится...В трее? Да, молния появляется, если в оконном режиме коннектиться. И немного другая, когда dbsrv.
Раз иконка другая, то могу предположить, что когда вы в оконном режиме коннектитесь, у вас запускается локальный движок, а не серверный..., т.е. слушает только локалхост, pipe ну и т.д., можно даже посмотреть ассоциацию вашей винды с файлами *.db, вполне возможно они завязаны только на локальный asa.
В принципе, если вы юзаете только локальный движок, то запуск локального энжина можно осуществить и в sql-файле
START DATABASE 'c:\test\test.db' AS test ON TEST1
CONNECT USING 'UID=DBA;PWD=SQL;DBN=TEST;ENG=TEST1'

Хочу только предупредить, все это у меня работает на 9-той версии, в 12-той может быть немного по другому...
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462947
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avtor2017Выполнил последовательно из командной строки
Код: sql
1.
2.
3.
dbsrv12 -n TEST -x TCPIP -c 8M C:\test\test.db
dbisql -c "ENG=TEST; commlinks=tcpip{HOST=127.0.0.1,port=2638}; dbn=TEST;uid=dba;pwd=sql" c:\test\mycom.sql
dbstop -c "ENG=TEST; commlinks=tcpip{HOST=127.0.0.1,port=2638}; dbn=TEST;uid=dba;pwd=sql"


Получилось!
Но когда занёс всё это в батник, то он запускает базу и останавливает выполнение. Как с этим бороться?
А вы что конкретно хотите сделать, запустить базу, сделать изменения и потом остановить сервер, не забывайте, что у вас винда и dbisql оконная среда, юзайте dbisqlc...
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39462984
avtor2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey OrlovРаз иконка другая, то могу предположить, что когда вы в оконном режиме коннектитесь, у вас запускается локальный движок, а не серверный..., т.е. слушает только локалхост, pipe ну и т.д., можно даже посмотреть ассоциацию вашей винды с файлами *.db, вполне возможно они завязаны только на локальный asa.
В принципе, если вы юзаете только локальный движок, то запуск локального энжина можно осуществить и в sql-файле
START DATABASE 'c:\test\test.db' AS test ON TEST1
CONNECT USING 'UID=DBA;PWD=SQL;DBN=TEST;ENG=TEST1'

Хочу только предупредить, все это у меня работает на 9-той версии, в 12-той может быть немного по другому...То есть, в sql пишу:
Код: sql
1.
2.
3.
START DATABASE 'c:\test\test.db' AS test ON TEST1
CONNECT USING 'UID=DBA;PWD=SQL;DBN=TEST;ENG=TEST1'
insert storage_address_type select 2, ''


Далее в командной строке
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
dbisql c:\test\mycom.sql
Syntax error: 'CONNECT' was not expected here.
  File: "mycom.sql" on line 1, column 45
  START DATABASE 'c:\test\test.db' AS test ON TEST1
  CONNECT
  You can continue executing or stop.
1. Stop
2. Continue
Select an option:


Если же в sql так:
Код: sql
1.
2.
3.
4.
5.
6.
START DATABASE 'c:\test\test.db' AS test ON TEST1
go
CONNECT USING 'UID=DBA;PWD=SQL;DBN=TEST;ENG=TEST1'
go
insert storage_address_type select 2, ''
go


то
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
dbisql c:\test\mycom.sql
Could not start database engine
  [Sybase][ODBC Driver][SQL Anywhere]Invalid user ID or password
  File: "mycom.sql" on line 1, column 45
  START DATABASE 'c:\test\test.db' AS test ON TEST1
  You can continue executing or stop.
1. Stop
2. Continue
Select an option: 



Sergey OrlovА вы что конкретно хотите сделать, запустить базу, сделать изменения и потом остановить сервер, не забывайте, что у вас винда и dbisql оконная среда, юзайте dbisqlc...То есть, так?
Код: sql
1.
2.
3.
dbsrv12 -n TEST -x TCPIP -c 8M C:\test\test.db
dbisqlс -c "ENG=TEST; commlinks=tcpip{HOST=127.0.0.1,port=2638}; dbn=TEST;uid=dba;pwd=sql" c:\test\mycom.sql
dbstop -c "ENG=TEST; commlinks=tcpip{HOST=127.0.0.1,port=2638}; dbn=TEST;uid=dba;pwd=sql"


То же самое, база запускается и дальше ничего, висит командное окно с мигающим курсором.
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39463041
avtor2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге получилось так
Код: sql
1.
dbisql -c "ENG=test; DBF=C:\test\test.db; dbn=test;uid=dba;pwd=sql" mycom.sql


Большое спасибо Sergey Orlov и White Owl!
...
Рейтинг: 0 / 0
[ASA] Выполнить скрипт из командной строки
    #39463090
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avtor2017В итоге получилось так
Код: sql
1.
dbisql -c "ENG=test; DBF=C:\test\test.db; dbn=test;uid=dba;pwd=sql" mycom.sql


Большое спасибо Sergey Orlov и White Owl!
при этом у вас запустился локальный энжин... Доступа к которому из сети нет...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / [ASA] Выполнить скрипт из командной строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]