File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / bindxfer.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    1: # 2005 April 21
    2: #
    3: # The author disclaims copyright to this source code.  In place of
    4: # a legal notice, here is a blessing:
    5: #
    6: #    May you do good and not evil.
    7: #    May you find forgiveness for yourself and forgive others.
    8: #    May you share freely, never taking more than you give.
    9: #
   10: #***********************************************************************
   11: # This file implements regression tests for SQLite library.  The
   12: # focus of this script testing the sqlite_transfer_bindings() API.
   13: #
   14: # $Id: bindxfer.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
   15: #
   16: 
   17: set testdir [file dirname $argv0]
   18: source $testdir/tester.tcl
   19: 
   20: proc sqlite_step {stmt VALS COLS} {
   21:   upvar #0 $VALS vals
   22:   upvar #0 $COLS cols
   23:   set vals [list]
   24:   set cols [list]
   25: 
   26:   set rc [sqlite3_step $stmt]
   27:   for {set i 0} {$i < [sqlite3_column_count $stmt]} {incr i} {
   28:     lappend cols [sqlite3_column_name $stmt $i]
   29:   }
   30:   for {set i 0} {$i < [sqlite3_data_count $stmt]} {incr i} {
   31:     lappend vals [sqlite3_column_text $stmt $i]
   32:   }
   33: 
   34:   return $rc
   35: }
   36: 
   37: do_test bindxfer-1.1 {
   38:   set DB [sqlite3_connection_pointer db]
   39:   execsql {CREATE TABLE t1(a,b,c);}
   40:   set VM1 [sqlite3_prepare $DB {SELECT ?, ?, ?} -1 TAIL]
   41:   set TAIL
   42: } {}
   43: do_test bindxfer-1.2 {
   44:   sqlite3_bind_parameter_count $VM1
   45: } 3
   46: do_test bindxfer-1.3 {
   47:   set VM2 [sqlite3_prepare $DB {SELECT ?, ?, ?} -1 TAIL]
   48:   set TAIL
   49: } {}
   50: do_test bindxfer-1.4 {
   51:   sqlite3_bind_parameter_count $VM2
   52: } 3
   53: ifcapable deprecated {
   54:   do_test bindxfer-1.5 {
   55:     sqlite_bind $VM1 1 one normal
   56:     set sqlite_static_bind_value two
   57:     sqlite_bind $VM1 2 {} static
   58:     sqlite_bind $VM1 3 {} null
   59:     sqlite3_transfer_bindings $VM1 $VM2
   60:     sqlite_step $VM1 VALUES COLNAMES
   61:   } SQLITE_ROW
   62:   do_test bindxfer-1.6 {
   63:     set VALUES
   64:   } {{} {} {}}
   65:   do_test bindxfer-1.7 {
   66:     sqlite_step $VM2 VALUES COLNAMES
   67:   } SQLITE_ROW
   68:   do_test bindxfer-1.8 {
   69:     set VALUES
   70:   } {one two {}}
   71: }
   72: catch {sqlite3_finalize $VM1}
   73: catch {sqlite3_finalize $VM2}
   74: 
   75: 
   76: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>