// 13.11.2007 11:50 -- dnp :  SQL
//  = ( "SQL" );
//  = .();

 ; // ODBC  
 ; // ODBCRecrodSet    
 ;
 ;
 , , ;
 ;

//*******************************************
 (  )  ;  ()   ();

//*******************************************
 () 
	
		= "ts1";
			= "jreg";
			= "jreguser";
			= "abraabra";
	
	 =
	"driver={SQL Server};
	|server=" +  + ";
	|database=" +  + ";
	|uid=" +  + ";
	|pwd=" +  + "";

		= ( "ODBCDataBase" );
	 ( .(  ) <> 1 ) 
		( "." + () + ":    : " + .(), "!" );
		 0;
	;
	 ;
	//

//*******************************************
 () 
	 ;
	//

//*******************************************
//  
 (  ) 
	 .(  );
	//

//*******************************************
//   2
 () 
	 = 
	"SELECT	CONVERT( CHAR, EvMoment, 121 ) as EvMoment,
	|	UserName, Mode, EvCat, EvType, Event,
	|	Object,
	|	CONVERT( CHAR, ObjDescr ) as ObjDescr,
	|	CONVERT( CHAR, Comment ) as Comment
	|FROM
	|	LOG_CPLC
	|";

	//

//*******************************************
//  .     SQL-
 () 
	.();
  //

//*******************************************
//  .     SQL-
 () 
	( ""
		+ ()
		+ ", ODBC " + .ODBC()
		+ ",  " + .(), "i" );
	 .();
  //SQL

//*******************************************
//
 _(  = 0 )
	 ;
	 = ();
	 (  = 0 )  ( (,"message") <> 0 ) 
		 = ((,"message",),2);
		 = (,"]",);
		 "   SQL : " + (,());
	;
	 ();
	//_

//*******************************************
// /   "() --> "
//
 ( =0 ) 
	 = 
	"IF NOT EXISTS ( SELECT * FROM dbo.sysobjects WHERE name = 'loggedbases' )
	|BEGIN
	|	CREATE TABLE loggedbases (
	|		regdate DATETIME,
	|		basepath VARCHAR(255) NOT NULL UNIQUE,
	|		baseid VARCHAR(25) NOT NULL
	|	)
	|  SELECT 0
	|END ELSE SELECT 1
	|";
	 = .(  );
	
	 (  <> 0 ) 
		 =
		"SELECT
		|	baseid, basepath,
		|	CONVERT( CHAR, regdate, 121 ) as registered
		|FROM loggedbases
		|ORDER BY baseid";
		 .(  );
	;
	
	 ;
	//

//*******************************************
 ( ,  ) 
	 = ();
	 ( ("1234567890",(,1)) <> 0 ) 
		( " .      ! """ +  + """", "!!!" );
		 0;
	;
	 = 
	"INSERT INTO loggedbases
	|  VALUES ( getdate(), '" +  + "', '" +  + "' )
	|";
	
		 = .(  );
	
		( " . " + _(), "!!!" );
		 = 0;
	;
	 ;
	//

//*******************************************
//  "() --> "
//       ,  
//       .
//
 (  ) 
	 =
	"SELECT baseid FROM loggedbases
	|  WHERE basepath='" + () + "'
	|";
	
		 = .(  );
	
		( "  . " + _() );
		 = 0;
	;
	 ;
	//

//*******************************************
 ()
	 = ( () );
	 ( () = 1 ) 
		//////( "    !", "!" );
		 0;
	;
		= "" +  + "_MLG";
		= "" +  + "_CH";
		= "" +  + "_CT";
	 1;
	//

//*******************************************
 SQL() 
	 1 - ((()));
	//SQL

//*******************************************
 ( ,  ) 
	 ( () = 0 ) 
		;
	;
	 (  = 1 ) 
		().( "DROP TABLE " +  );
	;
	 (  = 1 ) 
		().( "DROP TABLE " +  );
		().( "DROP TABLE " +  );
	;
  //

//*******************************************
 ()
	 = ();
	 (  = 0 ) 
		; // !
	;
		= ( "ODBCRecordSet" );
	.(  );
	 = 0;
	//

//*******************************************
//
 ()
	//   ,    _    ,
	//    - ٨ ... .
	
	// (  = 1 ) 
	//	 =
	//	"INSERT INTO " +  + " VALUES (
	//	|	GETDATE()
	//	|	,'" + () + "'
	//	|	,'E'
	//	|	,'Sys'
	//	|	,'1'
	//	|	,'StopLogging'
	//	|	,''
	//	|	,''
	//	|	,'" + () + "'
	//	|)";
	//	
	//		 = .(  );
	//	
	//		//( "  . " + _() );
	//	;
	//;
	//

//*******************************************
//
 ( ,  )
	 =
	"IF NOT EXISTS ( SELECT * FROM dbo.sysobjects WHERE name = '" +  + "' )
	|CREATE TABLE " +  + " ( " +  + " )";
	
		 = .(  );
		//( "  """ +  + """" );
	
		( "  """ +  + """  SQL: " + _(), "!" );
		 = 0;
	;
	 ;
	//

//*******************************************
 ( EvCat, Event, EvType, Comment, obj, ObjDescr ) 
	 (  <> 1 ) 
		 1; //  ,   .
	;
	
	 =
	"INSERT INTO " +  + " VALUES (
	|	GETDATE()
	|	,'" + () + "'
	|	,'E'
	|	,'" + EvCat + "'
	|	,'" + EvType + "'
	|	,'" + Event + "'
	|	,'" + obj + "'
	|	,'" + ObjDescr + "'
	|	,'" + (Comment,"'","""") + "'
	|)";
	
		 = .(  );
	
		( "  . " + _() );
		( "  :-------------
		|" +  + "
		| --------------------" );
	;
	 0; // 0 -  .
	//

//*******************************************
 ( , , , , , 4, 6 ) 
	 0; // 0 -  .
	//

//*******************************************
//       SQL
 ( , ,  ) 
	//|,EvMoment DATETIME
	//|,UserName VARCHAR(30)
	//|,Object CHAR(16)
	//|,CmpAlgoVer TINYINT
	////////|,VerStamp INTEGER
	//-------------------------------------------
	 = ..(  );

	 =
	"set nocount on
	|INSERT INTO " +  + " VALUES
	|(
	|	getdate()
	|	, '" + ((),30) + "'
	|	, '" +  + "'
	|	, " +  + "
	//|	, 0
	|)
	|select scope_identity()
	|set nocount off
	|";
	
		 = .(  );
	
		( "=== " + _() + " ===
		|------------------
		|" +  + "
		|--------------
		|", "!!!" );
		 0;
	;

	//- - - - - - - - - - - - - - - - - - - - - -
	//"EventID BIGINT REFERENCES " +  + "
	//|,ObjectID CHAR(16)
	//|,ObjLineNo INTEGER
	//|,FieldName VARCHAR(55)
	//|,ValueOld VARCHAR(255)
	//|,ValueNew VARCHAR(255)
	//- - - - - - - - - - - - - - - - - - - - - -
	//.();
	// .()=1 
	//	. = ..( . );
	//	. = ..( . );
	//;
	 = "INSERT INTO " +  + " VALUES ( '" +  + "', ?, '" +  + "', ?, ?, ?, ?, ?, ? )";
	 = .(  );
	 (  <> 1 ) 
		( "   SQL : " + .(), "!!!" );
		 0;
	;
	
		 = .SQL_(  );
	
		( _(1) + "
		|----------------
		|" +  + "
		|" , "!!!" );
		.(,"      :",);
		 0;
	;
	//( "   SQL  " +  );
	//- - - - - - - - - - - - - - - - - - - - - -
	
	//

//*******************************************
//     .
//   ,   * *.
//
//   -        (   )
//
 ( ,  ) 
	 ( () = 0 ) 
		//( "    !", "!" );
		 0;
	;
	//( " = " +  +  );
	//-------------------------------------------
	//    1
	 (  = 1 ) 
		 =
			"EvMoment DATETIME,
			|UserName VARCHAR(30),
			|Mode CHAR(1),
			|EvCat VARCHAR(9),
			|EvType CHAR(1),
			|Event VARCHAR(32),
			|Object CHAR(16),
			|ObjDescr TEXT,
			|Comment TEXT
			|";
		 = ( ,  );
		 (  <> 0 ) 
			( "Sys", "StartLog", "1", (), "", "" );
			 = 1;
		;
	;
	
	//-------------------------------------------
	//    
	 (  = 1 ) 
		 =
			//     
			"EventID BIGINT PRIMARY KEY IDENTITY
			//       
			|,EvMoment DATETIME
			//   1
			|,UserName VARCHAR(30)
			//    1
			|,Object CHAR(15)
			//  ,     (  ,    ...)
			|,CmpAlgoVer TINYINT
			/////|,VerStamp INTEGER
			|";
		1 = ( ,  );
		 =
			///   = "EventID,RegLineNo,ObjectID,ObjLineNo,ChangeType,FieldStatus,FieldName,ValueOld,ValueNew"
			//      
			"EventID BIGINT REFERENCES " +  + "
			//      
			|,RegLineNo SMALLINT
			//    1 //2+4+9 = 15
			|,ObjectID CHAR(15) 
			//    :
			// 		-3   ,
			//		-2   ,
			//		-1   ,
			//		 0   ,  ,  
			//		+1...    -       (    )    ,       , (    )
			|,ObjLineNo INTEGER
			//    :
			//		 -   , ,  ,  ,    
			//		+    
			//		-    
			|,ChangeType CHAR(1)
			//           : (    )
			//		! -   (  ),        
			//		 -  ,        ( = "!") . 
			|,FieldStatus CHAR(1)
			//   , ,    ,  ,   
			|,FieldName VARCHAR(55)
			//    
			|,ValueOld CHAR(23)
			|,ValueNew CHAR(23)
			//|,LongValueOld VARCHAR(1024)
			//|,LongValueNew VARCHAR(1024)
			|";
		2 = ( ,  );
		 ( 1 * 2 <> 0 ) 
			 = 1;
		;
	;
	 1;
	//

//*******************************************
//SELECT convert( char, evdate, 121 ) FROM log_ddd
//--DELETE FROM log_ddd WHERE evtime IS NULL
//--SELECT name,type FROM sysobjects WHERE name LIKE 'log%'
//--ALTER TABLE log_ddd ADD evtime CHAR(30)
//IF NOT EXISTS ( SELECT * FROM dbo.sysobjects WHERE name = 'log_ddd' )
//CREATE TABLE log_ddd ( datatime TIMESTAMP, username char(30), evdate DATETIME, evtime CHAR(30) )
//--INSERT INTO log_ddd VALUES ( NULL, 'io2j4goi', CONVERT(DATETIME, getdate(), 102), getdate() )


//*


