Я использую команду isql в python для баз данных sybase, команда isql по умолчанию возвращает ноль в качестве кода возврата, если запрос к базе данных не удался, я хочу, чтобы она возвращала некоторое ненулевое значение, если запрос не удался, чтобы я мог знать, что мой запрос недействителен.
Я просмотрел его в Интернете, я обнаружил, что использование параметра --retserverror с isql решит эту задачу, но при его использовании я получаю некоторые ошибки.
Я использую следующий код Python: -
ps = subprocess.Popen("""./isql -S %s -U %s -P %s -D %s --retserverror -s "|" -w 10000 <<EOF
%s
go
EOF""" % (server,userid,password,database,Query),stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
error = ps.stderr.read()
out, err = ps.communicate()
if ps.returncode == 0:
final = out
else:
print "Error"
final = error
print final
Выход:-
Syntax Error in '--retserverror'.
usage: ./isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q]
[-a display_charset] [-A packet_size] [-c cmdend] [-D database]
[-E editor [-h header [-H hostname [-i inputfile]
[-I interfaces_file] [-J client_charset] [-K keytab_file]
[-l login_timeout] [-m errorlevel] [-M labelname labelvalue]
[-o outputfile] [-P password] [-R remote_server_principal]
[-s col_separator] [-S server_name] [-t timeout] [-U username]
[-V [security_options]] [-w column_width] [-z localename]
[-Z security_mechanism]
Может ли кто-нибудь направить меня сюда?