!ABCIncludeFile

 OMIT('_EndOfInclude_',_unisqlPresente_)
_unisqlPresente_ EQUATE(1)

Uni_QFields  QUEUE,TYPE
QFieldName   STRING(40)     ! Nombre del Campo (o expresion)
QFieldLabel  STRING(40)     ! Label (texto) del Campo (o expresion)
QFieldNo     SHORT      ! Numero del Campo dentro del Select
         END!QUEUE

Uni_QFormat  QUEUE,TYPE
QFormatNo     SHORT         ! Numero del Campo dentro del Select
QFormatPic    STRING(40)    ! Formato (Picture)
         END!QUEUE

! --------------- Declaración de las Clases ------------
! Version 1.1
! * Se corrigio un Bug en el Fetch que asumia tipo de dato LONG de retorno y entonces no devolvia decimales. 
!   Se paso a STRING para que sea generico.
!
!
SQLOdbcClass CLASS(),MODULE('UNI_SQL2.CLW'),LINK('UNI_SQL2.CLW',_ABCLinkMode_),DLL(_ABCDllMode_)
SQLFile         &FILE
SQLFileRecord   &GROUP
State           BYTE        ! Indicates if the SQLClass objects are in a valid State
Query           CSTRING(65536) ! Contains the QUERY
SQL_Select      CSTRING(65536)   ! Contains the SELECT Clause
SQL_From        CSTRING(65536)    ! Contains the FROM     Clause
SQL_Where       CSTRING(65536)   ! Contains the WHERE    Clause
SQL_OrderBy     CSTRING(65536)    ! Contains the ORDER BY Clause
SQL_GroupBy     CSTRING(65536)    ! Contains the GROUP BY Clause
PropOwner       CSTRING(65536)    ! 
MiString        &StringClass     ! Reference a StringClass Object
Fields          &Uni_QFields
Format          &Uni_QFormat
PK_Col          SHORT       ! Columns Number that contains the value of the Primary Key (Files that want AutoUpdate need 1 PK with 1 Field only!)
Records         LONG        ! How many records will satisfy the query? USE METHOD TO UPDATE this prop.
Records_Done    LONG        ! How many records i have processed so far (next +1 , previous -1)
Cols            SHORT,PROTECTED ! How many columns does the Parser detected 
Primary_FM      &FileManager
Primary_Key     &KEY
Primary_Field   ANY
AutoUpdate      BYTE 
SilentMode      BYTE ! Equivalent to the "Try" concept but without duplicating the methods.
MaxReads        LONG ! Maximum amount of records enabled to read. When reached this number LoadQueue should stop and warn the user (if >0)      
Debug       BYTE ! Sets Debug True/False for long querys
Debug_Limit TIME ! Configure the threshold to WARN the user about a long Query (Long Query Detection)
Construct       PROCEDURE()
Destruct        PROCEDURE()
Init            PROCEDURE(*File Archivo,*Group Registro,String Conexion),Byte,VIRTUAL
Kill            PROCEDURE()
Exec            PROCEDURE(String Query),Byte
SP              PROCEDURE(Short NoCols, String Query),Byte  ! CALL A STORE PROCEDURE
Parse           PROCEDURE(),Byte
Col             PROCEDURE(Short id),String  ! Devuelve el contenido de la columna "n"
Col_Format      PROCEDURE(Short id ,String st)  ! Define el formato (picture) de la columna "n"
Columns         PROCEDURE(),Short        ! Devuelve la cantidad de Columnas del Query
Field           PROCEDURE(Short fi),String  ! Returns the name of the field no "x"
ServerExec      PROCEDURE(),Byte
Fetch           PROCEDURE(Short id,String st),String
Fetch           PROCEDURE(Short id,String st,*String st),Byte
Next            PROCEDURE(),Byte,PROC
Records         PROCEDURE(),LONG
RegisterUpdate  PROCEDURE(*FileManager MyFm ,*Key MyKey,*? MyField),VIRTUAL
UpdateBuffer    PROCEDURE(),Byte,PROC
LoadQueue       PROCEDURE(*Queue MyQ,Byte WithCount,Byte ShowWin),BYTE
TakeRecord      PROCEDURE(),BYTE,VIRTUAL
TakeInsert      PROCEDURE(),BYTE,VIRTUAL ! Metodos para Detectar Tipos de Querys
TakeDelete      PROCEDURE(),BYTE,VIRTUAL
TakeSelect      PROCEDURE(),BYTE,VIRTUAL
TakeDrop        PROCEDURE(),BYTE,VIRTUAL
TakeUpdate      PROCEDURE(),BYTE,VIRTUAL
       END

SQLIfxClass CLASS(SQLOdbcClass),MODULE('UNI_SQL2.CLW'),LINK('UNI_SQL2.CLW',_ABCLinkMode_),DLL(_ABCDllMode_)
TakeRecord    PROCEDURE(),BYTE,VIRTUAL
    END

SQLMsClass CLASS(SQLOdbcClass),MODULE('UNI_SQL2.CLW'),LINK('UNI_SQL2.CLW',_ABCLinkMode_),DLL(_ABCDllMode_)
TakeRecord    PROCEDURE(),BYTE,VIRTUAL
    END

_EndOfInclude_