OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/base.git] / util / src / TclTk / tcl8.6.12 / pkgs / tdbcpostgres1.1.3 / library / tdbcpostgres.tcl
diff --git a/util/src/TclTk/tcl8.6.12/pkgs/tdbcpostgres1.1.3/library/tdbcpostgres.tcl b/util/src/TclTk/tcl8.6.12/pkgs/tdbcpostgres1.1.3/library/tdbcpostgres.tcl
new file mode 100644 (file)
index 0000000..c5c4ef0
--- /dev/null
@@ -0,0 +1,135 @@
+# tdbcpostgres.tcl --
+#
+#      Class definitions and Tcl-level methods for the tdbc::postgres bridge.
+#
+# Copyright (c) 2009 by Slawomir Cygan
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+#------------------------------------------------------------------------------
+
+package require tdbc
+
+::namespace eval ::tdbc::mypostgres {
+
+    namespace export connection datasources drivers
+
+}
+\f
+#------------------------------------------------------------------------------
+#
+# tdbc::postgres::connection --
+#
+#      Class representing a connection to a Postgres database.
+#
+#-------------------------------------------------------------------------------
+
+::oo::class create ::tdbc::postgres::connection {
+
+    superclass ::tdbc::connection
+
+    # The constructor is written in C. It takes alternating keywords
+    # and values pairs as its arguments.  (See the manual page for the
+    # available options.)
+
+    # The 'statementCreate' method delegates to the constructor of the
+    # statement class
+
+    forward statementCreate ::tdbc::postgres::statement create
+
+
+    # The 'prepareCall' method gives a portable interface to prepare
+    # calls to stored procedures.  It delegates to 'prepare' to do the
+    # actual work.
+
+    method preparecall {call} {
+       regexp {^[[:space:]]*(?:([A-Za-z_][A-Za-z_0-9]*)[[:space:]]*=)?(.*)} \
+           $call -> varName rest
+       if {$varName eq {}} {
+           my prepare \\{$rest\\}
+       } else {
+           my prepare \\{:$varName=$rest\\}
+       }
+    }
+
+    # The 'init', 'begintransaction', 'commit, 'rollback', 'tables'
+    #  and 'columns' methods are implemented in C.
+
+}
+\f
+#------------------------------------------------------------------------------
+#
+# tdbc::postgres::statement --
+#
+#      The class 'tdbc::postgres::statement' models one statement against a
+#       database accessed through a Postgres connection
+#
+#------------------------------------------------------------------------------
+
+::oo::class create ::tdbc::postgres::statement {
+
+    superclass ::tdbc::statement
+
+    # The 'resultSetCreate' method forwards to the constructor of the
+    # result set.
+
+    forward resultSetCreate ::tdbc::postgres::resultset create
+
+    # Methods implemented in C:
+    #
+    # constructor connection SQLCode
+    #  The constructor accepts the handle to the connection and the SQL code
+    #  for the statement to prepare.  It creates a subordinate namespace to
+    #  hold the statement's active result sets, and then delegates to the
+    #  'init' method, written in C, to do the actual work of preparing the
+    #  statement.
+    # params
+    #   Returns descriptions of the parameters of a statement.
+    # paramtype paramname ?direction? type ?precision ?scale??
+    #   Declares the type of a parameter in the statement
+
+}
+\f
+#------------------------------------------------------------------------------
+#
+# tdbc::postgres::resultset --
+#
+#      The class 'tdbc::postgres::resultset' models the result set that is
+#      produced by executing a statement against a Postgres database.
+#
+#------------------------------------------------------------------------------
+
+::oo::class create ::tdbc::postgres::resultset {
+
+    superclass ::tdbc::resultset
+
+    # The 'nextresults' method is stubbed out; tdbcpostgres does not
+    # allow a single call to return multiple results.
+
+    method nextresults {} {
+       while {[my nextdict rubbish]} {}
+       return 0
+    }
+
+    # Methods implemented in C include:
+
+    # constructor statement ?dictionary?
+    #     -- Executes the statement against the database, optionally providing
+    #        a dictionary of substituted parameters (default is to get params
+    #        from variables in the caller's scope).
+    # columns
+    #     -- Returns a list of the names of the columns in the result.
+    # nextdict
+    #     -- Stores the next row of the result set in the given variable in
+    #        the caller's scope as a dictionary whose keys are
+    #        column names and whose values are column values, or else
+    #        as a list of cells.
+    # nextlist
+    #     -- Stores the next row of the result set in the given variable in
+    #        the caller's scope as a list of cells.
+    # rowcount
+    #     -- Returns a count of rows affected by the statement, or -1
+    #        if the count of rows has not been determined.
+
+}