Командный канал под Windows - как предотвратить появление окна оболочки - PullRequest
0 голосов
/ 12 октября 2019

В tcl 8.4 я хочу использовать sqlcmd для связи с базой данных Microsoft SQL (я предпочитаю избегать использования пакета ODBC, не установленного по умолчанию на компьютерах моих пользователей). Проблема в том, что мой код ниже вызывает кратковременное всплывающее окно команд. Как я могу это предотвратить?

set args [list sqlcmd -U user -P password -S $server -d $db -h -1]
set sqlpipe [open "|$args" r+]
fconfigure $sqlpipe -buffering line -blocking 0
puts $sqlpipe "SET NOCOUNT ON"
puts $sqlpipe "SELECT TOP 1 IP_ADDRESS FROM dbo.SETUP ORDER BY SETUP_TIME 
DESC"
puts $sqlpipe "GO"
after 1000 {set response 0}
fileevent $sqlpipe r {set response 1}
vwait response
if {$response} {
    set ipadd [string trim [gets $sqlpipe]]
} else {
    set ipadd ""
}
...