nsmcp::DatabaseSession method statements (protected)
<instance of nsmcp::DatabaseSession> statements sql
Defined in /usr/local/ns/tcl/nsmcp/database.tcl
- Parameters:
- sql (required)
- Testcases:
- No testcase defined.
Source code: if {[dict exists ${:scripts} $sql]} { return [dict get ${:scripts} $sql] } set trimmed [string trimleft $sql] if {[string first {;} $sql]<0 && $trimmed ne {} && [string range $trimmed 0 1] ni {-- /*}} { set statements [list $sql] } else { set statements {} set statement {} set length [string length $sql] set quote {} set comment {} set active false for {set i 0} {$i<$length} {incr i} { set char [string index $sql $i] set next [string index $sql [expr {$i+1}]] if {$comment eq "line"} { append statement $char if {$char eq "\n"} { set comment {} } continue } if {$comment eq "block"} { append statement $char if {$char eq "*" && $next eq "/"} { append statement $next incr i set comment {} } continue } if {$quote ne ""} { append statement $char if {$char eq $quote} { if {$next eq $quote} { append statement $next incr i } else { set quote {} } } continue } if {$char eq "-" && $next eq "-"} { set comment line append statement $char $next incr i continue } if {$char eq "/" && $next eq "*"} { set comment block append statement $char $next incr i continue } if {$char eq "'" || $char eq "\"" || $char eq "\x60"} { set active true set quote $char append statement $char continue } if {$char eq "\u005b"} { set active true set quote "\u005d" append statement $char continue } if {$char eq ";"} { if {$active} { lappend statements $statement } set statement {} set active false continue } if {![string is space -strict $char]} { set active true } append statement $char } if {$quote ne "" || $comment eq "block"} { error "unterminated trusted SQL script" } if {$active} { lappend statements $statement } } if {[dict size ${:scripts}]>=64} { set :scripts {} } dict set :scripts $sql $statements return $statementsXQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)