.. :   aka spock, mailto: spock@km.ru

.. include:: commonchm.txt

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   OLE DB
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

..	<chminfo>
		<insert nodes="//common/maininfo/*"/>
		<alinks>_1cpp_oledb_</alinks>
	</chminfo>

.. contents:: 
	:backlinks: none

        OLEDB-.
   :
	
	* OLEDBData_ -      
	           -
	  .
	* OLEDBCommand_ -      
	  oledb-   .


#####################################################################
OLEDBData
#####################################################################

         
 oledb-.     
 OLEDBCommand_.


=====================================================================
..	<chminfo split="0" splitchild="1">
		<insert nodes="//common/propsmethods/*"/>
	</chminfo>

 / Connect
---------------------------------------------------------------------
	**:**  ()

	**:** : . 1 -   , 0 -  .

	**:**
		-  - : .
	
	**:**    
	   .

::
	
	oledb.Connect("Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + 
	() + ";Mode=ReadWrite;Mask Password=False;
	Collating Sequence=MACHINE;");

 / CreateCommand
---------------------------------------------------------------------
	**:** ()

	**:** :   OLEDBCommand.

	**:**   ,   
	    ( , -
	 ).

 / Close
---------------------------------------------------------------------
	**:** ()
	
	**:**   .

 / AttachIB
---------------------------------------------------------------------
	**:**  (, [])

	**:**
		-  - : .     .   "\\".
		-  - : .     .    - "Provider=VFPOLEDB.1;Deleted=Yes;Mode=ReadWrite;Collating Sequence=MACHINE;Data Source=%1",  %1 -  .
	
	**:**       
	      .
	 ,     OLEDBCommand,  
	    .

#####################################################################
OLEDBCommand
#####################################################################

         
 .        
( : **("OLEDBCommand")** ).    
     ()  OLEDBData_.
  sql-   ,  
 :
	
	+   ;
	+    ;

      .

  
=====================================================================
    ::

	[<> $<1>]
	<> ::= <,     >
	<1> ::= <   1>

 (`         .`)::

	SELECT 
		SPR.ID as [ $.] 
	FROM 
		$. as SPR


=====================================================================
..	<chminfo split="0" splitchild="1">
		<insert nodes="//common/propsmethods/*"/>
	</chminfo>

 / Debug
---------------------------------------------------------------------
	**:** ()

	**:**
		-  - : . 1 -  , 0 -  .
			
	**:**    .

	**:** /   sql-. 
	  , sql-,    , 
	    .

 / Execute
---------------------------------------------------------------------
	**:** ([SQL])

	**:**
		- SQL - : . SQL- ( INSERT, UPDATE, DELETE).       .

	**:** : .   .

	**:**  SQL- (DML,  INSERT, UPDATE, DELETE) 
	    .    
	,      .

 / ExecuteStatement
---------------------------------------------------------------------
	**:** ([SQL], [], [=1])

	**:**
		- SQL - : . SQL-.       .
		-  - : . ,      .  .
		-  - : . 1 -     (), 0 -  .   ,   - 1.

	**:** : .     
	 .      
	 .

	**:**  SQL-      
	 .    ,   
	    .    
	,      .

 / Close
---------------------------------------------------------------------
	**:** ()

	**:**  .

 / SetTextParam
---------------------------------------------------------------------
	**:** (, )

	**:**
		-  - : .   .
		-  - : .   .

	**:**   ,   
	   SQL-.      
	  .

 / SetTempTablesDir
---------------------------------------------------------------------
	**:** ()

	**:**
		-  - : . ,      .

	**:**   ,     
	 .         
	.       .

	**:**    .    
	       .

 / PutObjectList
---------------------------------------------------------------------
	**:** (, , )

	**:**
		-  - : // (   , ). ,      .
		-  - : .  .   ,         .
		-  - : .      .

	**:**   (  ,    ) 
	  .       
	    (  GUID).    
	 VAL CHAR(9)    ISFOLDER NUMERIC(1,0).

	    (  ),      ( ),    (  ""    1).
	
	       ( : DROP TABLE MyTmpTbl ) -   
	      ( () )     OLEDBCommand_.

::

	 = "";
	cmd.(, , "");
	(" : " + ); // , " : 858573b1-5a6f-459e-9c75-ec63e2a1d858"

 / SetExecTimeOut
---------------------------------------------------------------------
	**:** ()

	**:**
		-  - : .    .
		
	**:**      . 
	       .
	   0 -   .

 / AddParam
---------------------------------------------------------------------
	**:** (IOType, DBType, Len, Prec)

	**:**
		- IOType - : .  :

			* 1 - DBPARAMIO_INPUT;
			* 2 - DBPARAMIO_OUTPUT;
			* 3 - DBPARAMIO_INPUT | DBPARAMIO_OUTPUT.

		- DBType - : . DBTYPE- .
		
		- Len - : .  .
		
		- Prec - : .  .
		
	**:**      .

 / SetParam
---------------------------------------------------------------------
	**:** (, )

	**:**
		-  - : .  ,    1.
		
		-  - : .  .
		
	**:**     .

 / ParamCnt
---------------------------------------------------------------------
	**:** ()

	**:** : .   .

	**:**    .

 / DeleteParam
---------------------------------------------------------------------
	**:** ()

	**:**
		-  - : .  ,    1.
		
	**:**  .

 / DeleteParams
---------------------------------------------------------------------
	**:** ()
	
	**:**  .

 / Prepare
---------------------------------------------------------------------
	**:** (SQL)

	**:**
		- SQL - : . SQL-.

	**:**  ** SQL .    .
	     (      
	  "?" (*SQL *)).      
	     .     
	    .
	
 / Unprepare
---------------------------------------------------------------------
	**:** ()

	**:**   .
	
#####################################################################
 #1 OLEDB:   OLE DB   1
#####################################################################

+-------+------------------+------------+----------------+
|    |      OLEDB    |    1   |      |
+-------+------------------+------------+----------------+
|131    |DBTYPE_NUMERIC    |       |                |
+-------+------------------+            +----------------+
|2      |DBTYPE_I2         |            |                |
+-------+------------------+            +----------------+
|3      |DBTYPE_I4         |            |                |
+-------+------------------+            +----------------+
|4      |DBTYPE_R4         |            |                |
+-------+------------------+            +----------------+
|5      |DBTYPE_R8         |            |                |
+-------+------------------+            +----------------+
|6      |DBTYPE_CY         |            |                |
+-------+------------------+            +----------------+
|14     |DBTYPE_DECIMAL    |            |                |
+-------+------------------+            +----------------+
|17     |DBTYPE_UI1        |            |                |
+-------+------------------+            +----------------+
|16     |DBTYPE_I1         |            |                |
+-------+------------------+            +----------------+
|18     |DBTYPE_UI2        |            |                |
+-------+------------------+            +----------------+
|19     |DBTYPE_UI4        |            |                |
+-------+------------------+            +----------------+
|20     |DBTYPE_I8         |            |                |
+-------+------------------+            +----------------+
|21     |DBTYPE_UI8        |            |                |
+-------+------------------+            +----------------+
|11     |DBTYPE_BOOL       |            |                |
+-------+------------------+------------+----------------+
|133    |DBTYPE_DBDATE     |            |                |
+-------+------------------+        +----------------+
|135    |DBTYPE_DBTIMESTAMP|            | . |
+-------+------------------+------------+----------------+
|130    |DBTYPE_WSTR       |      |                |
+-------+------------------+            +----------------+
|1      |DBTYPE_NULL       |            |                |
+-------+------------------+            +----------------+
|7      |DBTYPE_DATE       |            |                |
+-------+------------------+            +----------------+
|8      |DBTYPE_BSTR       |            | .     |
+-------+------------------+            +----------------+
|10     |DBTYPE_ERROR      |            | .     |
+-------+------------------+            +----------------+
|12     |DBTYPE_VARIANT    |            | .     |
+-------+------------------+            +----------------+
|13     |DBTYPE_IUNKNOWN   |            | .     |
+-------+------------------+            +----------------+
|72     |DBTYPE_GUID       |            |                |
+-------+------------------+            +----------------+
|128    |DBTYPE_BYTES      |            | .     |
+-------+------------------+            +----------------+
|129    |DBTYPE_STR        |            |                |
+-------+------------------+            +----------------+
|132    |DBTYPE_UDT        |            | .     |
+-------+------------------+            +----------------+
|134    |DBTYPE_DBTIME     |            |                |
+-------+------------------+------------+----------------+


#####################################################################
 #2 OLEDB:   1   OLE DB
#####################################################################

+------------------+------------+----------------+--------------------+------------------+
|      OLEDB    |    1   |      |     SQLOLEDB       |     VFPOLEDB     |
+------------------+------------+----------------+--------------------+------------------+
|DBTYPE_I2         |       |                |smallint            |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_I4         |            |                |int                 |integer           |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_R4         |            |                |float               |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_R8         |            |                |real                |double            |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_CY         |            |                |money               |currency          |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_BOOL       |            |0-, 1-|bit                 |logical           |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_DECIMAL    |            |                |decimal             |numeric, float    |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_UI1        |            |                |tinyint             |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_I1         |            |                |numeric(3,0)        |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_UI2        |            |                |numeric(5,0)        |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_UI4        |            |                |numeric(10,0)       |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_I8         |            |                |bigint              |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_UI8        |            |                |numeric(20,0)       |                  |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_NUMERIC    |            |                |numeric             |                  |
+------------------+------------+----------------+--------------------+------------------+
|DBTYPE_GUID       |      |                |uniqueidentifier    |                  |
+------------------+------------+----------------+--------------------+------------------+
|DBTYPE_STR        |      |                |char, varchar, text |character         |
+                  +------------+----------------+                    +                  +
|                  |       |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |        |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  ||                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |  |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |    |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |   |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |  |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |        |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  | |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |  |                |                    |                  |
+------------------+------------+----------------+--------------------+------------------+
|DBTYPE_DATE       |        |                |datetime            |date              |
+------------------+            +----------------+--------------------+------------------+
|DBTYPE_DBDATE     |            |                |                    |date              |
+------------------+------------+----------------+--------------------+------------------+
|DBTYPE_DBTIMESTAMP|        |                |datetime            |datetime          |
+                  +------------+----------------+                    +                  +
|                  |      |                |                    |                  |
+------------------+------------+----------------+--------------------+------------------+
|DBTYPE_DBTIME     |       |                |                    |                  |
+                  +------------+----------------+                    +                  +
|                  |      |                |                    |                  |
+------------------+------------+----------------+--------------------+------------------+