Am 20.02.17 um 16:01 schrieb Brian Fenton:
HI Gustaf
I’d guess this is not a Windows thing, as I can reproduce the problem
in standard TCL on both Windows and Linux. But I haven’t looked at
Naviserver on Linux to confirm it there.
This worked fine for years in AOLserver on both Windows and Linux. It
seems to be that Naviserver’s version of “open” is closer to the
standard TCL version.
naviserver is not "closer" to Tcl, it uses the Tcl unmodified (including
open).
I see in the AOLserver sources no place, where it overwrites/modifies
the "open" command.
When should I write the “exit\n” to the pipe? I’ve tried a few
variations on the following with no success:
set fp [open "|[file join $::env(ORACLE_HOME) bin sqlplus] $user_pass
@$file" "r+"]
puts $fp "exit\n"
while { [gets $fp line] >= 0 } {
append output $line
}
close $fp
The following should work. this is a little script (that works under Unix)
that emulates sqlplus - as i understand it.
Hope this helps
-g
================================================================================
#!/usr/bin/env tclsh
puts "GOT args <$argv>"
#
# Read a line from stdin to emulate, what sqlplus is doing
#
set line [gets stdin]
puts "GOT line <$line>"
if {0} {
#
# Place this file into /tmp/sqlplus.tcl, make it executable, call a
# tclsh, and issue in this shell the following cmds:
#
set user_pass pw
set file test.sql
set fp [open "| /tmp/sqlplus.tcl $user_pass @$file" "r+"]
fconfigure $fp -buffering line
puts $fp "exit"
while { [gets $fp line] >= 0 } {
append output $line \n
}
close $fp
puts output:\n$output
}
================================================================================
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel