home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 July / PCWorld_1999-07_cd.bin / 602 / WBPERSON / data1.cab / SDK_Files / C-lang / C.L1 / WBKERNEL.H < prev    next >
C/C++ Source or Header  |  1999-06-09  |  41KB  |  764 lines

  1. /****************************************************************************/
  2. /* wbkernel.h - definice pro komunikaci s jadrem WinBase602                 */
  3. /* (C) Janus Drozd, 1992, 93, 94, 95, 96, 97, 98, 99                        */
  4. /* verze: 6.0 (32-bit)                                                      */
  5. /****************************************************************************/
  6. #ifndef __WBKERNEL_H__
  7. #define __WBKERNEL_H__
  8.  
  9. #include "general.h"
  10. #include "cdp.h"
  11. /************************* Cisla systemovych tabulek ************************/
  12. #define TAB_TABLENUM   0   /* cislo tabulky tabulek */
  13. #define OBJ_TABLENUM   1   /* cislo tabulky objektu */
  14. #define USER_TABLENUM  2   /* cislo tabulky uzivatelu */
  15. #define SRV_TABLENUM   3   /* cislo tabulky serveru */
  16. #define REPL_TABLENUM  4   /* cislo tabulky replikacnich pravidel */
  17. #define KEY_TABLENUM   5   /* cislo tabulky verejnych klicu */
  18.  
  19. /**************************** Atribut "DELETED": ****************************/
  20. #define DEL_ATTR_NUM   0   /* cislo atributu "DELETED" */
  21. #define NOT_DELETED    0   /* hodnoty atributu: zaznam neni zrusen */
  22. #define DELETED        1   /*                   zaznam je zrusen   */
  23. #define RECORD_EMPTY   2   /*                   zaznam je uvolnen  */
  24.  
  25. /*************** Atributy systemovych tabulek TABTAB A OBJTAB ***************/
  26. #define OBJ_NAME_ATR   3 /* Jmeno objektu, STRING delky OBJ_NAME_LEN znaku */
  27. #define OBJ_CATEG_ATR  4 /* Kategorie objektu, atribut typu CHAR */
  28. #define APPL_ID_ATR    5 /* Id aplikace, k niz objekt patri, BINARY delky 12 bajtu */
  29. #define OBJ_DEF_ATR    6 /* Definice objektu, atribut typu Text */
  30. #define OBJ_FLAGS_ATR  7 /* Priznaky objektu, atribut typu SHORT */
  31.  
  32. /******************************* Kategorie: *********************************/
  33. #define CATEG_TABLE        0  // tabulka
  34. #define CATEG_USER         1  // uzivatel
  35. #define CATEG_VIEW         2  // pohled
  36. #define CATEG_CURSOR       3  // dotaz
  37. #define CATEG_PGMSRC       4  // text programu
  38. #define CATEG_PGMEXE       5  // prelozeny program
  39. #define CATEG_MENU         6  // menu
  40. #define CATEG_APPL         7  // aplikace
  41. #define CATEG_PICT         8  // obrazek
  42. #define CATEG_GROUP        9  // skupina
  43. #define CATEG_ROLE        10  // role
  44. #define CATEG_CONNECTION  11  // ODBC spojeni
  45. #define CATEG_RELATION    12  // relace
  46. #define CATEG_DRAWING     13  // nakres
  47. #define CATEG_GRAPH       14  // graf
  48. #define CATEG_REPLREL     15  // replikacni vztah
  49. #define CATEG_PROC        16  // rutina
  50. #define CATEG_TRIGGER     17  // trigger
  51. #define CATEG_WWW         18  // WWW objekt
  52. #define CATEG_SEQ         20  // sekvence
  53. #define CATEG_SERVER      26  // replikacni server
  54. #define CATEG_MASK    0x7f
  55. #define IS_LINK       0x80 /* spojovaci objekt */
  56. #define CATEG_DIRCUR  27      // otevreny kurzor
  57.  
  58. /*************************** struktura kernel_info **************************/
  59. typedef struct {
  60.   char  version[6];   /* ASCIIZ oznaceni verze serveru */
  61.   uns16 logged;       /* pocet prihlasenych uzivatelu */
  62.   uns16 blocksize;    /* velikost clusteru */
  63.   uns32 freeblocks;   /* pocet volnych clusteru v alokacni tabulce */
  64.   uns16 frames;       /* pocet pametovych ramu */
  65.   uns8  fixed_pages;  /* pocet ramu s fixovanym obsahem */
  66.   uns8  max_users;    /* maximalni pocet uzivatelu */
  67.   uns8  rtp;          /* provozni parametry */
  68.   uns32 diskspace;    /* mnozstvi volneho mista na disku */
  69.   tobjname server_name;     /* jmeno serveru */
  70.   uns32 local_free_memory;  /* volna pamet u klienta */
  71.   uns32 remote_free_memory; /* volna pamet na serveru */
  72.   BOOL  networking;         /* sitova prace klienta */
  73.   uns16 owned_cursors;      /* pocet otevrenych kurzoru klientem */
  74.                } kernel_info;
  75.  
  76. /************** Hodnoty slozky "modtype" v zaznamu "modifrec" ***************/
  77. #define MODSTOP     0
  78. #define MODLEN      2
  79. #define MODIND      3
  80. #define MODINT      4
  81. #define MODPTR      5
  82. #define MODINDPTR   6
  83.  
  84. typedef struct {
  85.   uns8 modtype;
  86.   union umoddef {
  87.     struct smodstop{ uns16 dummy; }              modstop;
  88.     struct smodlen { uns16 dummy; }              modlen;
  89.     struct smodind { uns16 index; }              modind;
  90.     struct smodint { uns32 start;  uns16 size; } modint;
  91.     struct smodp   { uns8  attr;  }              modptr;
  92.     struct smodindp{ uns16 index;  uns8 attr; }  modindptr;
  93.                 } moddef;
  94.                } modifrec;
  95.  
  96. /************************** hodnota typu money ******************************/
  97. typedef struct
  98. { uns16   money_lo2;
  99.   sig32   money_hi4;
  100. } monstr;
  101. /************************* Pristupova prava: ********************************/
  102. #define RIGHT_APPEND     0x04  /* pravo vkladat zaznamy                     */
  103. #define RIGHT_INSERT     0x04  /* dtto                                      */
  104. #define RIGHT_DEL        0x08  /* pravo rusit zaznamy                       */
  105. #define RIGHT_NEW_READ   0x10  /* pridelovat k novym zaznamum pravo cist    */
  106. #define RIGHT_NEW_WRITE  0x20  /* pridelovat k novym zaznamum pravo prepsat */
  107. #define RIGHT_NEW_DEL    0x40  /* pridelovat k novym zaznamum pravo zrusit  */
  108. #define RIGHT_GRANT      0x80  /* universalni pravo poskytovat sva prava    */
  109.  
  110. /********************* Hodnoty "NONE" ruznych typu: *************************/
  111. #define NONEBOOLEAN   ((uns8)0x80)
  112. #define NONECHAR      ((uns8)0)
  113. #define NONEDATE      0x80000000L
  114. #define NONETIME      0x80000000L
  115. #define NONETIMESTAMP 0x80000000L
  116. #define NONEMONEY     /* nelze takto definovat, ma hodnotu 0,0,0,0,0,0x80 */
  117. #define NONEINTEGER   ((sig32)0x80000000L)
  118. #define NONESHORT     ((sig16)0x8000)
  119. #define NONEREAL      -1.7001e308
  120. #define NONESTRING    ""
  121. #define NONEPTR       ((uns32)-1)
  122.  
  123. /********************* Parametry funkce Set_sql_option **********************/
  124. #define SQLOPT_NULLEQNULL        1 // hodnota NULL se rovna NULL
  125. #define SQLOPT_NULLCOMP          2 // NULL se porovnavat s ne-NULL hodnotami
  126. #define SQLOPT_RD_PRIVIL_VIOL    4 // hodnota bez prava cteni se jevi najo NULL
  127. #define SQLOPT_MASK_NUM_RANGE    8 // preteceni ciselneho typu pri konverzi vrati NULL
  128. #define SQLOPT_MASK_INV_CHAR    16 // nekonvertovatelny retezec znaku vrati NULL
  129. #define SQLOPT_MASK_RIGHT_TRUNC 32 // zkraceni retezce pri konverzi se maskuje
  130. #define SQLOPT_EXPLIC_FREE      64 // zrusene zaznamy se uvolni az pri explicitnim Free_deleted
  131.  
  132. /******************************* Cisla chyb: ********************************/
  133. #ifndef NO_ERROR    /* conflict with winerror.h */
  134. #define NO_ERROR                 0
  135. #endif
  136. #define ANS_OK                   0
  137. #define NOT_ANSWERED             0xff
  138. #define BAD_MODIF                0x80
  139. #define NO_RIGHT                 0x81
  140. #define BAD_ELEM_NUM             0x82
  141. #define OUT_OF_TABLE             0x83 // 02000
  142. #define TABLE_FULL               0x84
  143. #define CURSOR_MISUSE            0x85
  144. #define BAD_OPCODE               0x86
  145. #define CANNOT_APPEND            0x87
  146. #define NOT_LOCKED               0x88
  147. #define NO_DESTINATION_TAB       0x89
  148. #define INDEX_OUT_OF_RANGE       0x8a
  149. #define NOT_A_RECORD             0x8b
  150. #define EMPTY                    0x8c
  151. #define NO_OBJECT                0x8d     // not used
  152. #define BAD_PASSWORD             0x8e
  153. #define PTR_TO_DELETED           0x8f
  154. #define NIL_PTR                  0x90
  155. #define OUT_OF_KERNEL_MEMORY     0x91
  156. #define TOO_MANY_CURSORS         0x92     // not used
  157. #define IS_DELETED               0x93
  158. #define INDEX_NOT_FOUND          0x94
  159. #define OBJECT_NOT_FOUND         0x95
  160. #define OUT_OF_APPL_MEMORY       0x96
  161. #define BAD_DATA_SIZE            0x97
  162. #define UNREADABLE_BLOCK         0x98
  163. #define DEMO_VERSION             0x99
  164. #define OUT_OF_BLOCKS            0x9a
  165. #define REQUEST_BREAKED          0x9b
  166. #define OS_FILE_ERROR            0x9d
  167. #define INCOMPATIBLE_VERSION     0x9e
  168. #define REJECTED_BY_KERNEL       0x9f
  169. #define MUST_NOT_BE_NULL         0xa0  // 40002
  170. #define NO_BITAB                 0xa1
  171. #define NO_MY_RIGHT              0xa2
  172. #define IE_OUT_OF_DWORM          0xa3  /* interni chyba */
  173. #define IE_FRAME_OVERRUN         0xa4  /* interni chyba */
  174. #define IE_PAGING                0xa5  /* interni chyba */
  175. #define IE_DOUBLE_PAGE           0xa6  /* interni chyba */
  176. #define IE_OUT_OF_BSTACK         0xa7  /* interni chyba */
  177. #define TABLE_DAMAGED            0xa8
  178. #define CANNOT_LOCK_KERNEL       0xa9
  179. #define END_OF_VOLUME_SPACE      0xaa  /* interni zprava */
  180. #define DEADLOCK                 0xab
  181. #define KEY_DUPLICITY            0xac   // 40002
  182. #define BAD_VERSION              0xad   // client/server version mismatch
  183. #define CHECK_CONSTRAIN          0xae   // 40002
  184. #define REFERENTIAL_CONSTRAIN    0xaf   // 40002
  185. #define UNPROPER_TYPE            0xb0
  186. #define OUTER_JOIN_TOO_COMPLEX   0xb1   // not used
  187. #define REQUEST_NESTING          0xb2
  188. #define CANNOT_FOR_ODBC          0xb3
  189. #define ERROR_IN_FUNCTION_ARG    0xb4
  190. #define ODBC_CURSOR_NOT_OPEN     0xb5
  191. #define DRIVER_NOT_CAPABLE       0xb6
  192. #define TOO_COMPLEX_TRANS        0xb7
  193. #define INTERNAL_SIGNAL          0xb8
  194. #define PRIV_KEY_NOT_FOUND       0xb9
  195. #define NO_WRITE_TOKEN           0xba
  196. #define WAITING_FOR_ACKN         0xbb
  197. #define REPL_BLOCKED             0xbc
  198. #define BAD_TOKEN_STATE          0xbd
  199. #define BAD_TABLE_PROPERTIES     0xbe
  200. #define INDEX_DAMAGED            0xbf
  201. #define PASSWORD_EXPIRED         0xc0
  202. #define NO_KEY_FOUND             0xc1
  203. #define DIFFERENT_KEY            0xc2
  204. #define ASSERTION_FAILED         0xc3
  205. #define SQ_INVALID_CURSOR_STATE  0xc4 // 24000
  206. #define SQ_SAVEPOINT_INVAL_SPEC  0xc5 // 3B001
  207. #define SQ_SAVEPOINT_TOO_MANY    0xc6 // 3B002
  208. #define SQ_TRANS_STATE_ACTIVE    0xc7 // 25001
  209. #define SQ_INVAL_TRANS_TERM      0xc8 // 2D000
  210. #define SQ_TRANS_STATE_RDONLY    0xc9 // 25006
  211. #define SQ_NUM_VAL_OUT_OF_RANGE  0xca // 22003
  212. #define SQ_INV_CHAR_VAL_FOR_CAST 0xcb // 22018
  213. #define SQ_STRING_DATA_RIGHT_TRU 0xcc // 22001
  214. #define SQ_DIVISION_BY_ZERO      0xcd // 22012
  215. #define SQ_CARDINALITY_VIOLATION 0xce // 21000
  216. #define SQ_INVALID_ESCAPE_CHAR   0xcf // 22019
  217. #define SQ_CASE_NOT_FOUND_STMT   0xd0 // 20000
  218. #define SQ_UNHANDLED_USER_EXCEPT 0xd1 // 45000
  219. #define SQ_RESIGNAL_HND_NOT_ACT  0xd2 // 0K000
  220. #define SQ_EXT_ROUT_NOT_AVAIL    0xd3 // 38001
  221. #define SQ_NO_RETURN_IN_FNC      0xd4 // 2F001
  222. #define COLUMN_NOT_EDITABLE      0xd5
  223. #define SQ_TRIGGERED_ACTION      0xd6 // 09000
  224. #define REPLICATION_NOT_RUNNING  0xd7
  225. #define REPL_MAIL_ERROR          0xd8
  226. #define SQ_INVALID_CURSOR_NAME   0xd9 // 34000
  227. #define ROLE_FROM_DIFF_APPL      0xda
  228. #define SEQUENCE_EXHAUSTED       0xdb
  229. #define NO_CURRENT_VAL           0xdc
  230.  
  231. #define LAST_DB_ERROR NO_CURRENT_VAL
  232.  
  233. #define FIRST_MAIL_ERROR         500  // client mail error numbers
  234. #define MAIL_NOT_INITIALIZED     500
  235. #define MAIL_ERROR               501
  236. #define MAIL_NOT_REMOTE          502
  237. #define MAIL_TYPE_INVALID        503
  238. #define MAIL_LOGON_FAILED        504
  239. #define MAIL_BAD_PROFILE         505
  240. #define MAIL_BAD_USERID          506
  241. #define MAIL_NO_ADDRESS          507
  242. #define FILE_NOT_FOUND           508
  243.  
  244. /**************************** Cisla varovani: *******************************/
  245. #define NO_WARNING         0
  246. #define WAS_IN_TRANS       1
  247. #define NOT_IN_TRANS       2
  248. #define ERROR_IN_CONSTRS   3
  249. #define IS_NOT_DEL         4
  250. #define IS_DEL             8
  251. #define IS_EMPTY          16
  252. #define NO_BIPTR          32
  253. #define INDEX_OOR         64
  254. #define DUPL_KEY          96
  255. #undef  IS_ERROR
  256. #define IS_ERROR         128
  257.  
  258. /********** Hodnoty vracene funkci link_kernel a interf_init ****************/
  259. #define KSE_OK               0   /* bez chyby */
  260. #define KSE_WINDOWS          1   /* zahlcene Windows */
  261. #define KSE_INSTAL_PRESENT   2   /* pracuje program WBINSTAL */
  262. #define KSE_ZALOHA_PRESENT   3   /* pracuje program ZALOHA */
  263. #define KSE_WINEXEC          4   /* nelze spustit WBADMIN */
  264. #define KSE_NO_MEMORY        5   /* neni dost pameti */
  265. #define KSE_NO_CONFIG        6   /* nenalezen kofiguracni soubor WB.CNF */
  266. #define KSE_NO_FIL           7   /* jmeno serveru neni registrovano */
  267. #define KSE_DAMAGED          8   /* databaze je vazne poskozena */
  268. #define KSE_NO_ACCESS        9   /* zahlceno databazove jadro */
  269. #define KSE_SERVER_CLOSED    10  /* server zamcen */
  270. #define KSE_BAD_VERSION      11  /* chybna verze jadra */
  271. #define KSE_NETWORK_INIT     12  /* nedari se inicializovat sit */
  272. #define KSE_QUIT             13  /* nevybran zadny server */
  273. #define KSE_NOSERVER         14  /* nenalezen zadny server */
  274. #define KSE_CONNECTION       15  /* nenavazano spojeni se serverem */
  275. #define KSE_NOTASK           16  /* nelze vytvorit dalsi instanci */
  276. #define KSE_WBNETMEM         17  /* nelze spustit program WBNETMEM */
  277. #define KSE_MAXCLIENTS       18  /* prekrocen maximalni pocet clientu */
  278. #define KSE_SPXNOTINSTALLED  19  /* zavedeny ovladac IPX nepodporuje SPX, pravdepodobne pouzito IPXODI /a */
  279. #define KSE_MAXCONNECTION    20  /* neni dost relaci SPX (connections), nastavte v shell.cfg */
  280. #define KSE_MAXSESSION       21  /* neni dost relaci NetBIOS (sessions), viz instalacni manual */
  281. #define KSE_MAXNCB           22  /* neni dost ridicich bloku NetBIOS, viz instalacni manual */
  282. #define KSE_DBASE_OPEN       23  /* databaze je jiz otevrena jinym serverem */
  283. #define KSE_SERVER_NAME_USED 24  /* v siti jiz bezi databazovy server stejneho jmena */
  284. #define KSE_START_THREAD     25  /* nelze spustit dalsi vlakno */
  285. #define KSE_SYNCHRO_OBJ      26  /* nelze vytvorit synchronizacni objekt */
  286. #define KSE_MAPPING          27  /* nelze mapovat pametovy soubor */
  287. #define KSE_CREATE_THREAD    28  /* nelze vytvorit vlakno pro obsluhu klienta */
  288. #define KSE_TIMEOUT          29  /* primo dostupny server neodpovida */
  289. #define KSE_NO_WINSOCK       30  /* knihovna winsock neni instalovana */
  290. #define KSE_WINSOCK_ERROR    31  /* chyba pri praci se socketem */
  291. #define KSE_SERVER_NOT_KNOWN 32  /* jmeno serveru neni registrovano */
  292. #define KSE_SERVER_PATH_NOT_SPECIF 33 /* cesta k databazi serveru neni registrovana */
  293. #define KSE_NETBIOS_NAME     34  /* nemohu pridat jmeno pro NetBIOS */
  294. #define KSE_FWNOTFOUND       35  /* nenalezen firewall */
  295. #define KSE_FWCOMM           36  /* nelze komunikovat s firewallem */
  296. #define KSE_FWDENIED         37  /* firewall odmitl vytvorit propojeni */
  297. #define KSE_BAD_PASSWORD     38  /* chyba hesla k databazovemu souboru */
  298. #define KSE_ESCAPED          39  /* upusteno od startu serveru */
  299. #define KSE_NO_IPX           40  /* protokol IPX neni k dispozici */
  300. #define KSE_EXPIRED          41  /* skoncila pouzitelnost serveru */
  301. #define KSE_CANNOT_CREATE_FIL 42 /* nelze vytvorit databazovy soubor */
  302. #define KSE_CANNOT_OPEN_FIL   43 /* nelze otevrit databazovy soubor */
  303. #define KSE_CANNOT_OPEN_TRANS 44 /* nelze otevrit transakcni soubor */
  304.  
  305. #define NOINDEX 0xffff /* hodnota parametru index, nejde-li o multiatribut */
  306. #define MAX_PACKAGED_REQS    25  /* max. pocet pozadavku v baliku */
  307.  
  308. /*************************** procedury a funkce *****************************/
  309. enum t_isolation  { READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE };
  310.  
  311. #ifdef __cplusplus
  312. extern "C" {
  313. #endif
  314.  
  315.   // organizacni funkce:
  316. DllKernel void  WINAPI start_package   (void);
  317. DllKernel void  WINAPI send_package    (void);
  318. DllKernel void  WINAPI concurrent      (BOOL state);
  319. DllKernel BOOL  WINAPI answered        (void);
  320. DllKernel BOOL  WINAPI waiting         (sig32 timeout);
  321.  
  322.   // Chyby a varovani:
  323. DllKernel int   WINAPI Sz_error        (void);
  324. DllKernel int   WINAPI Sz_warning      (void);
  325.  
  326.   // Vyhledani objektu:
  327. DllKernel BOOL WINAPI Find2_object(const char * name, const uns8 * appl_id, tcateg category, tobjnum * position);
  328. DllKernel BOOL WINAPI Find_object (const char * name, tcateg category, tobjnum * position);
  329. DllKernel BOOL WINAPI Find_object_by_id(const WBUUID uuid, tcateg category, tobjnum * position);
  330.  
  331.   // Prace s kurzory:
  332. DllKernel BOOL WINAPI Open_cursor        (tobjnum cursdef, tcursnum * curs);
  333. DllKernel BOOL WINAPI Open_cursor_direct (const char * query, tcursnum * curs);
  334. DllKernel BOOL WINAPI Close_cursor       (tcursnum curs);
  335. DllKernel BOOL WINAPI Open_subcursor     (tcursnum supercurs, const char * subcurdef, tcursnum * subcurs);
  336. DllKernel BOOL WINAPI Add_record(tcursnum curs, trecnum * recs, int numofrecs);
  337. DllKernel BOOL WINAPI Super_recnum(tcursnum subcursor, tcursnum supercursor,
  338.                           trecnum subrecnum, trecnum * superrecnum);
  339. DllKernel BOOL WINAPI Translate(tcursnum curs, trecnum crec, int tbord, trecnum * trec);
  340. DllKernel BOOL WINAPI Query_optimization(const char * query, char * buf, int bufsize);
  341.  
  342.   // Prace se zaznamy:
  343. DllKernel trecnum WINAPI Append(tcurstab curs);
  344. DllKernel trecnum WINAPI Insert(tcurstab curs);
  345. DllKernel trecnum WINAPI Look_up(tcursnum curs, const char * attrname, void * res);
  346. DllKernel BOOL WINAPI Delete             (tcurstab  curs,  trecnum position);
  347. DllKernel BOOL WINAPI Undelete           (ttablenum table, trecnum position);
  348. DllKernel BOOL WINAPI Delete_all_records (tcursnum curs);
  349. DllKernel BOOL WINAPI Rec_cnt            (tcurstab curs, trecnum * recnum);
  350.  
  351.   // Cteni a zapis dat:
  352. DllKernel BOOL WINAPI Read         (tcurstab cursnum, trecnum position,
  353.   tattrib attr, const modifrec * access, void * buffer);
  354. DllKernel BOOL WINAPI Write        (tcurstab cursnum, trecnum position,
  355.   tattrib attr, const modifrec * access, const void * buffer, uns16 datasize);
  356. DllKernel BOOL WINAPI Read_ind     (tcurstab cursnum, trecnum position,
  357.   tattrib attr, uns16 index, void * data);
  358. DllKernel BOOL WINAPI Write_ind    (tcurstab cursnum, trecnum position,
  359.   tattrib attr, uns16 index, void * data, uns16 datasize);
  360. DllKernel BOOL WINAPI Read_ind_cnt (tcurstab cursnum, trecnum position,
  361.   tattrib attr, uns16 * count);
  362. DllKernel BOOL WINAPI Write_ind_cnt(tcurstab cursnum, trecnum position,
  363.   tattrib attr, uns16 count);
  364. DllKernel BOOL WINAPI Read_var     (tcurstab cursnum, trecnum position,
  365.   tattrib attr, uns16 index, uns32 start, uns32 size, void * buf, uns32 * psize);
  366. DllKernel BOOL WINAPI Write_var    (tcurstab cursnum, trecnum position,
  367.   tattrib attr, uns16 index, uns32 start, uns32 size, const void * buf);
  368. DllKernel BOOL WINAPI Read_len     (tcurstab cursnum, trecnum position,
  369.   tattrib attr, uns16 index, uns32 * size);
  370. DllKernel BOOL WINAPI Write_len    (tcurstab cursnum, trecnum position,
  371.   tattrib attr, uns16 index, uns32 size);
  372. DllKernel BOOL WINAPI Read_record  (tcurstab cursnum, trecnum position,
  373.   void * buf, uns16 datasize);
  374. DllKernel BOOL WINAPI Write_record (tcurstab cursnum, trecnum position,
  375.   const void * buf, uns16 datasize);
  376.  
  377.   // prava:
  378. DllKernel BOOL WINAPI GetSet_privils(tobjnum user_group_role,
  379.   tcateg subject_categ, ttablenum table, trecnum recnum, t_oper operation,
  380.   uns8 * privils);
  381.  
  382.   // transakce:
  383. DllKernel BOOL WINAPI Start_transaction  (void);
  384. DllKernel BOOL WINAPI Commit             (void);
  385. DllKernel BOOL WINAPI Roll_back          (void);
  386. DllKernel BOOL WINAPI Set_transaction_isolation_level(t_isolation level);
  387.  
  388.   // zamky:
  389. DllKernel BOOL WINAPI Read_lock_record   (tcurstab curs, trecnum position);
  390. DllKernel BOOL WINAPI Read_unlock_record (tcurstab curs, trecnum position);
  391. DllKernel BOOL WINAPI Write_lock_record  (tcurstab curs, trecnum position);
  392. DllKernel BOOL WINAPI Write_unlock_record(tcurstab curs, trecnum position);
  393. DllKernel BOOL WINAPI Read_lock_table    (tcurstab curs);
  394. DllKernel BOOL WINAPI Read_unlock_table  (tcurstab curs);
  395. DllKernel BOOL WINAPI Write_lock_table   (tcurstab curs);
  396. DllKernel BOOL WINAPI Write_unlock_table (tcurstab curs);
  397.  
  398.   // prace s objekty:
  399. DllKernel BOOL WINAPI Insert_object(const char * name, tcateg category, tobjnum * objnum);
  400. DllKernel BOOL WINAPI Relist_objects(void);
  401. DllKernel BOOL WINAPI GetSet_group_role(tobjnum user_or_group,
  402.   tobjnum group_or_role, tcateg subject2, t_oper operation, uns32 * relation);
  403. DllKernel BOOL WINAPI Create_user(const char * logname,
  404.   const char * name1, const char * name2, const char * name3,
  405.   const char * identif,  const WBUUID homesrv,
  406.   const char * password, tobjnum * objnum);
  407. DllKernel BOOL WINAPI Set_password(const char * reserved, const char * password);
  408. DllKernel BOOL WINAPI Create_link(const char * sourcename,
  409.            const char * sourceappl, tcateg category, const char * linkname);
  410. DllKernel BOOL WINAPI Create2_link(const char * sourcename,
  411.            const uns8 * sourceapplid, tcateg category, const char * linkname);
  412. DllKernel BOOL WINAPI Set_appl_starter(tcateg categ, const char * objname);
  413.  
  414.   // sledovani stavu
  415. DllKernel sig32  WINAPI Available_memory(BOOL local);
  416. DllKernel sig32  WINAPI Used_memory(BOOL local);
  417. DllKernel int    WINAPI Owned_cursors(void);
  418. DllKernel BOOL   WINAPI Database_integrity(BOOL repair,
  419.            uns32 * lost_blocks, uns32 * lost_dheap,
  420.            uns32 * nonex_blocks, uns32 * cross_link, uns32 * damaged_tabdef);
  421. DllKernel BOOL   WINAPI Get_info(kernel_info * kinf);
  422. DllKernel BOOL   WINAPI GetSet_fil_size  (t_oper operation, uns32 * size);
  423. DllKernel BOOL   WINAPI GetSet_fil_blocks(t_oper operation, uns32 * size);
  424. DllKernel char * WINAPI Who_am_I     (void);
  425. DllKernel BOOL   WINAPI Am_I_db_admin  (void);
  426. DllKernel sig32  WINAPI WinBase602_version(void);
  427. DllKernel void   WINAPI Enable_task_switch(BOOL enable);
  428. DllKernel BOOL   WINAPI Compact_database(int margin);
  429. DllKernel BOOL   WINAPI Log_write(const char * text);
  430. DllKernel BOOL   WINAPI Connection_speed_test(int * requests, int * kbytes);
  431. DllKernel BOOL   WINAPI Appl_inst_count(uns32 * count);
  432. DllKernel BOOL   WINAPI Get_logged_user(int index, char * username, char * applname, int * state);
  433.  
  434.   // obalka aplikace v externim jazyce
  435. DllKernel void  WINAPI cdp_init        (cdp_t cdp);
  436. DllKernel sig32 WINAPI cdp_size        (void);
  437. DllKernel cdp_t WINAPI cdp_alloc       (void);
  438. DllKernel void  WINAPI cdp_free        (cdp_t cdp);
  439. DllKernel int   WINAPI link_kernel     (const char * path, int display);
  440. DllKernel void  WINAPI unlink_kernel   (void);
  441. DllKernel int   WINAPI interf_init     (cdp_t cdp, int user);
  442. DllKernel void  WINAPI interf_close    (void);
  443. DllKernel BOOL  WINAPI Login           (const char * username, const char * password);
  444. DllKernel BOOL  WINAPI Logout          (void);
  445. DllKernel BOOL  WINAPI Set_application (const char * applname);
  446.  
  447.   // jine funkce serveru:
  448. DllKernel BOOL WINAPI SQL_execute(const char * statement, uns32 * results);
  449. DllKernel BOOL WINAPI SQL_prepare(const char * statement, uns32 * handle);
  450. DllKernel BOOL WINAPI SQL_exec_prepared(uns32 handle, uns32 * results, int * count);
  451. DllKernel BOOL WINAPI SQL_drop(uns32 handle);
  452. DllKernel BOOL WINAPI Set_sql_option(uns32 optmask, uns32 optval);
  453. DllKernel BOOL WINAPI Break(void);
  454. DllKernel BOOL WINAPI Message_to_clients(const char * msg);
  455. DllKernel BOOL WINAPI Set_progress_report_modulus(unsigned modulus);
  456.  
  457.   // manipulace s tabulkou:
  458. DllKernel BOOL WINAPI Enable_index(ttablenum table, int which, BOOL enable);
  459. DllKernel BOOL WINAPI Free_deleted(ttablenum table);
  460. DllKernel BOOL WINAPI Compact_table(ttablenum table);
  461.  
  462.   // agregacni funkce:
  463. DllKernel BOOL WINAPI C_sum  (tcursnum curs, const char * attrname,
  464.   const char * condition, void * result);
  465. DllKernel BOOL WINAPI C_max  (tcursnum curs, const char * attrname,
  466.   const char * condition, void * result);
  467. DllKernel BOOL WINAPI C_min  (tcursnum curs, const char * attrname,
  468.   const char * condition, void * result);
  469. DllKernel BOOL WINAPI C_count(tcursnum curs, const char * attrname,
  470.   const char * condition, trecnum * result);
  471. DllKernel BOOL WINAPI C_avg  (tcursnum curs, const char * attrname,
  472.   const char * condition, void * result);
  473.  
  474.   // ODBC:
  475. DllKernel BOOL  WINAPI ODBC_open_cursor      (uns32 connection,  tcursnum * curs,  const char * query);
  476. DllKernel uns32 WINAPI ODBC_find_connection  (const char * dsn_name);
  477. DllKernel uns32 WINAPI ODBC_create_connection(const char * dsn_name);
  478. DllKernel uns32 WINAPI ODBC_direct_connection(const char * conn_string);
  479.  
  480.   // informace o atributech:
  481. typedef BOOL (WINAPI enum_attr)(char * attrname, uns8 attrtype,
  482.                                      uns8 attrmult, uns16 attrspecif);
  483. DllKernel BOOL WINAPI Enum_attributes(ttablenum table, enum_attr * callback);
  484. DllKernel BOOL WINAPI Attribute_info(ttablenum table, const char * attrname,
  485.        tattrib * attrnum, uns8 * attrtype, uns8 * attrmult, uns16 * attrspecif);
  486.  
  487.   // podpisy a replikace:
  488. DllKernel BOOL WINAPI Signature(window_id hParent, tcursnum cursor, trecnum recnum, tattrib attr, BOOL create, void * param);
  489. DllKernel BOOL WINAPI Repl_control(int optype, int opparsize, void * opparam);
  490. DllKernel BOOL WINAPI Replicate(const char * ServerName, const char * ApplName, BOOL pull);
  491. DllKernel BOOL WINAPI Reset_replication(void);
  492. DllKernel BOOL WINAPI GetSet_next_user(tcurstab curs,
  493.   trecnum position, tattrib attr, t_oper operation, t_valtype valtype, void * value);
  494.  
  495.   // e-mail
  496. DllKernel DWORD WINAPI InitWBMail(char *Profile, char *PassWord);
  497. DllKernel DWORD WINAPI InitWBMail602(char *EmiPath, char *UserID, char *PassWord);
  498. DllKernel void  WINAPI CloseWBMail(void);
  499.  
  500. DllKernel DWORD WINAPI LetterCreate(char *Subj, char *Msg, UINT Flags, DWORD *lpLetter);
  501. DllKernel DWORD WINAPI LetterAddAddr(DWORD Letter, char *Addr, char *Type, BOOL CC);
  502. DllKernel DWORD WINAPI LetterAddFile(DWORD Letter, char *fName);
  503. DllKernel DWORD WINAPI LetterSend(DWORD Letter);
  504. DllKernel DWORD WINAPI TakeMailToRemOffice(void);
  505. DllKernel void  WINAPI LetterCancel(DWORD Letter);
  506.  
  507.   // typove konverze:
  508. DllKernel uns32 WINAPI Make_date  (int day, int month, int year);
  509. DllKernel int   WINAPI Day        (uns32 dt);
  510. DllKernel int   WINAPI Month      (uns32 dt);
  511. DllKernel int   WINAPI Year       (uns32 dt);
  512. DllKernel int   WINAPI Quarter    (uns32 dt);
  513. DllKernel uns32 WINAPI Today      (void);
  514. DllKernel uns32 WINAPI Make_time  (int hour, int minute, int second, int sec1000);
  515. DllKernel int   WINAPI Day_of_week(uns32 dt);
  516. DllKernel int   WINAPI Hours      (uns32 tm);
  517. DllKernel int   WINAPI Minutes    (uns32 tm);
  518. DllKernel int   WINAPI Seconds    (uns32 tm);
  519. DllKernel int   WINAPI Sec1000    (uns32 tm);
  520. DllKernel uns32 WINAPI Now        (void);
  521. DllKernel BOOL  WINAPI Like       (const char * s1, const char * s2);
  522. DllKernel BOOL  WINAPI Pref       (const char * s1, const char * s2);
  523. DllKernel BOOL  WINAPI Substr     (const char * s1, const char * s2);
  524. DllKernel void  WINAPI Upcase     (char * str);
  525. DllKernel double WINAPI money2real(monstr * m);
  526. DllKernel BOOL   WINAPI real2money(double d, monstr * m);
  527. DllKernel uns32 WINAPI timestamp2date    (uns32 dtm);
  528. DllKernel uns32 WINAPI timestamp2time    (uns32 dtm);
  529. DllKernel uns32 WINAPI datetime2timestamp(uns32 dt, uns32 tm);
  530. DllKernel void  WINAPI time2str     (uns32 tm,  char * txt, short param);
  531. DllKernel void  WINAPI date2str     (uns32 dt,  char * txt, short param);
  532. DllKernel void  WINAPI timestamp2str(uns32 dtm, char * txt, short param);
  533. DllKernel BOOL  WINAPI str2time     (char * txt, uns32 * tm);
  534. DllKernel BOOL  WINAPI str2date     (char * txt, uns32 * dt);
  535. DllKernel BOOL  WINAPI str2timestamp(char * txt, uns32 * dtm);
  536.  
  537.   // zastarale funkce
  538. DllKernel BOOL WINAPI Uninst_table (ttablenum table);
  539. DllKernel BOOL WINAPI Save_table   (ttablenum table, const char * filename);
  540. DllKernel BOOL WINAPI Restore_table(ttablenum table, const char * filename);
  541. DllKernel BOOL WINAPI Define_table (const char * name, const char * description);
  542. DllKernel BOOL WINAPI Get_object_rights(const char * objname, tcateg category,
  543.                           const char * username, tright * rights);
  544. DllKernel BOOL WINAPI Set_object_rights(const char * objname, tcateg category,
  545.                           const char * username, tright rights);
  546. DllKernel BOOL WINAPI Get_data_rights(ttablenum table, const char * username,
  547.                 tright * rights, tdright * rd_ri, tdright * wr_ri);
  548. DllKernel BOOL WINAPI Set_data_rights(ttablenum table, const char * username,
  549.                 tright rights, tdright rd_ri, tdright wr_ri);
  550. DllKernel BOOL WINAPI Create_group (const char * name);
  551. DllKernel BOOL WINAPI User_to_group(tobjnum user, tobjnum group, BOOL state);
  552. DllKernel BOOL WINAPI User_in_group(tobjnum user, tobjnum group, BOOL * state);
  553.  
  554. ////////////////////////////// varianta cd_ //////////////////////////////////
  555.  
  556.   // organizacni funkce:
  557. DllKernel void  WINAPI cd_start_package   (cdp_t cdp);
  558. DllKernel void  WINAPI cd_send_package    (cdp_t cdp);
  559. DllKernel void  WINAPI cd_concurrent      (cdp_t cdp, BOOL state);
  560. DllKernel BOOL  WINAPI cd_answered        (cdp_t cdp);
  561. DllKernel BOOL  WINAPI cd_waiting         (cdp_t cdp, sig32 timeout);
  562.  
  563.   // Chyby a varovani:
  564. DllKernel int   WINAPI cd_Sz_error        (cdp_t cdp);
  565. DllKernel int   WINAPI cd_Sz_warning      (cdp_t cdp);
  566.  
  567.   // Vyhledani objektu:
  568. DllKernel BOOL WINAPI cd_Find2_object(cdp_t cdp, const char * name, const uns8 * appl_id, tcateg category, tobjnum * position);
  569. DllKernel BOOL WINAPI cd_Find_object (cdp_t cdp, const char * name, tcateg category, tobjnum * position);
  570. DllKernel BOOL WINAPI cd_Find_object_by_id(cdp_t cdp, const WBUUID uuid, tcateg category, tobjnum * position);
  571.  
  572.   // Prace s kurzory:
  573. DllKernel BOOL WINAPI cd_Open_cursor        (cdp_t cdp, tobjnum cursdef, tcursnum * curs);
  574. DllKernel BOOL WINAPI cd_Open_cursor_direct (cdp_t cdp, const char * query, tcursnum * curs);
  575. DllKernel BOOL WINAPI cd_Close_cursor       (cdp_t cdp, tcursnum curs);
  576. DllKernel BOOL WINAPI cd_Open_subcursor     (cdp_t cdp, tcursnum supercurs, const char * subcurdef, tcursnum * subcurs);
  577. DllKernel BOOL WINAPI cd_Add_record(cdp_t cdp, tcursnum curs, trecnum * recs, int numofrecs);
  578. DllKernel BOOL WINAPI cd_Super_recnum(cdp_t cdp, tcursnum subcursor, tcursnum supercursor,
  579.                           trecnum subrecnum, trecnum * superrecnum);
  580. DllKernel BOOL WINAPI cd_Translate(cdp_t cdp, tcursnum curs, trecnum crec, int tbord, trecnum * trec);
  581. DllKernel BOOL WINAPI cd_Query_optimization(cdp_t cdp, const char * query, char * buf, int bufsize);
  582.  
  583.   // Prace se zaznamy:
  584. DllKernel trecnum WINAPI cd_Append(cdp_t cdp, tcurstab curs);
  585. DllKernel trecnum WINAPI cd_Insert(cdp_t cdp, tcurstab curs);
  586. DllKernel trecnum WINAPI cd_Look_up(cdp_t cdp, tcursnum curs, const char * attrname, void * res);
  587. DllKernel BOOL WINAPI cd_Delete             (cdp_t cdp, tcurstab  curs,  trecnum position);
  588. DllKernel BOOL WINAPI cd_Undelete           (cdp_t cdp, ttablenum table, trecnum position);
  589. DllKernel BOOL WINAPI cd_Delete_all_records (cdp_t cdp, tcursnum curs);
  590. DllKernel BOOL WINAPI cd_Rec_cnt            (cdp_t cdp, tcurstab curs, trecnum * recnum);
  591.  
  592.   // Cteni a zapis dat:
  593. DllKernel BOOL WINAPI cd_Read         (cdp_t cdp, tcurstab cursnum, trecnum position,
  594.   tattrib attr, const modifrec * access, void * buffer);
  595. DllKernel BOOL WINAPI cd_Write        (cdp_t cdp, tcurstab cursnum, trecnum position,
  596.   tattrib attr, const modifrec * access, const void * buffer, uns16 datasize);
  597. DllKernel BOOL WINAPI cd_Read_ind     (cdp_t cdp, tcurstab cursnum, trecnum position,
  598.   tattrib attr, uns16 index, void * data);
  599. DllKernel BOOL WINAPI cd_Write_ind    (cdp_t cdp, tcurstab cursnum, trecnum position,
  600.   tattrib attr, uns16 index, void * data, uns16 datasize);
  601. DllKernel BOOL WINAPI cd_Read_ind_cnt (cdp_t cdp, tcurstab cursnum, trecnum position,
  602.   tattrib attr, uns16 * count);
  603. DllKernel BOOL WINAPI cd_Write_ind_cnt(cdp_t cdp, tcurstab cursnum, trecnum position,
  604.   tattrib attr, uns16 count);
  605. DllKernel BOOL WINAPI cd_Read_var     (cdp_t cdp, tcurstab cursnum, trecnum position,
  606.   tattrib attr, uns16 index, uns32 start, uns32 size, void * buf, uns32 * psize);
  607. DllKernel BOOL WINAPI cd_Write_var    (cdp_t cdp, tcurstab cursnum, trecnum position,
  608.   tattrib attr, uns16 index, uns32 start, uns32 size, const void * buf);
  609. DllKernel BOOL WINAPI cd_Read_len     (cdp_t cdp, tcurstab cursnum, trecnum position,
  610.   tattrib attr, uns16 index, uns32 * size);
  611. DllKernel BOOL WINAPI cd_Write_len    (cdp_t cdp, tcurstab cursnum, trecnum position,
  612.   tattrib attr, uns16 index, uns32 size);
  613. DllKernel BOOL WINAPI cd_Read_record  (cdp_t cdp, tcurstab cursnum, trecnum position,
  614.   void * buf, uns16 datasize);
  615. DllKernel BOOL WINAPI cd_Write_record (cdp_t cdp, tcurstab cursnum, trecnum position,
  616.   const void * buf, uns16 datasize);
  617.  
  618.   // prava:
  619. DllKernel BOOL WINAPI cd_GetSet_privils(cdp_t cdp, tobjnum user_group_role,
  620.   tcateg subject_categ, ttablenum table, trecnum recnum, t_oper operation,
  621.   uns8 * privils);
  622.  
  623.   // transakce:
  624. DllKernel BOOL WINAPI cd_Start_transaction  (cdp_t cdp);
  625. DllKernel BOOL WINAPI cd_Commit             (cdp_t cdp);
  626. DllKernel BOOL WINAPI cd_Roll_back          (cdp_t cdp);
  627. DllKernel BOOL WINAPI cd_Set_transaction_isolation_level(cdp_t cdp, t_isolation level);
  628.  
  629.   // zamky:
  630. DllKernel BOOL WINAPI cd_Read_lock_record   (cdp_t cdp, tcurstab curs, trecnum position);
  631. DllKernel BOOL WINAPI cd_Read_unlock_record (cdp_t cdp, tcurstab curs, trecnum position);
  632. DllKernel BOOL WINAPI cd_Write_lock_record  (cdp_t cdp, tcurstab curs, trecnum position);
  633. DllKernel BOOL WINAPI cd_Write_unlock_record(cdp_t cdp, tcurstab curs, trecnum position);
  634. DllKernel BOOL WINAPI cd_Read_lock_table    (cdp_t cdp, tcurstab curs);
  635. DllKernel BOOL WINAPI cd_Read_unlock_table  (cdp_t cdp, tcurstab curs);
  636. DllKernel BOOL WINAPI cd_Write_lock_table   (cdp_t cdp, tcurstab curs);
  637. DllKernel BOOL WINAPI cd_Write_unlock_table (cdp_t cdp, tcurstab curs);
  638.  
  639.   // prace s objekty:
  640. DllKernel BOOL WINAPI cd_Insert_object(cdp_t cdp, const char * name, tcateg category, tobjnum * objnum);
  641. DllKernel BOOL WINAPI cd_Relist_objects(cdp_t cdp);
  642. DllKernel BOOL WINAPI cd_Relist_objects_ex(cdp_t cdp, BOOL extended);
  643. DllKernel BOOL WINAPI cd_GetSet_group_role(cdp_t cdp, tobjnum user_or_group,
  644.   tobjnum group_or_role, tcateg subject2, t_oper operation, uns32 * relation);
  645. DllKernel BOOL WINAPI cd_Create_user(cdp_t cdp, const char * logname,
  646.   const char * name1, const char * name2, const char * name3,
  647.   const char * identif,  const WBUUID homesrv,
  648.   const char * password, tobjnum * objnum);
  649. DllKernel BOOL WINAPI cd_Set_password(cdp_t cdp, const char * reserved, const char * password);
  650. DllKernel BOOL WINAPI cd_Create_link(cdp_t cdp, const char * sourcename,
  651.            const char * sourceappl, tcateg category, const char * linkname);
  652. DllKernel BOOL WINAPI cd_Create2_link(cdp_t cdp, const char * sourcename,
  653.            const uns8 * sourceapplid, tcateg category, const char * linkname);
  654. DllKernel BOOL WINAPI cd_Set_appl_starter(cdp_t cdp, tcateg categ, const char * objname);
  655.  
  656.   // sledovani stavu
  657. DllKernel sig32  WINAPI cd_Available_memory(cdp_t cdp, BOOL local);
  658. DllKernel sig32  WINAPI cd_Used_memory(cdp_t cdp, BOOL local);
  659. DllKernel int    WINAPI cd_Owned_cursors(cdp_t cdp);
  660. DllKernel BOOL   WINAPI cd_Database_integrity(cdp_t cdp, BOOL repair,
  661.            uns32 * lost_blocks, uns32 * lost_dheap,
  662.            uns32 * nonex_blocks, uns32 * cross_link, uns32 * damaged_tabdef);
  663. DllKernel BOOL   WINAPI cd_Get_info(cdp_t cdp, kernel_info * kinf);
  664. DllKernel BOOL   WINAPI cd_GetSet_fil_size  (cdp_t cdp, t_oper operation, uns32 * size);
  665. DllKernel BOOL   WINAPI cd_GetSet_fil_blocks(cdp_t cdp, t_oper operation, uns32 * size);
  666. DllKernel char * WINAPI cd_Who_am_I     (cdp_t cdp);
  667. DllKernel BOOL   WINAPI cd_Am_I_db_admin  (cdp_t cdp);
  668. DllKernel sig32  WINAPI cd_WinBase602_version(cdp_t cdp);
  669. DllKernel void   WINAPI cd_Enable_task_switch(cdp_t cdp, BOOL enable);
  670. DllKernel BOOL   WINAPI cd_Compact_database(cdp_t cdp, int margin);
  671. DllKernel BOOL   WINAPI cd_Log_write(cdp_t cdp, const char * text);
  672. DllKernel BOOL   WINAPI cd_Connection_speed_test(cdp_t cdp, int * requests, int * kbytes);
  673. DllKernel BOOL   WINAPI cd_Appl_inst_count(cdp_t cdp, uns32 * count);
  674. DllKernel BOOL   WINAPI cd_Get_logged_user(cdp_t cdp, int index, char * username, char * applname, int * state);
  675.  
  676.   // obalka aplikace v externim jazyce
  677. DllKernel int   WINAPI interf_init       (cdp_t cdp, int user);
  678. DllKernel void  WINAPI cd_interf_close   (cdp_t cdp);
  679. DllKernel BOOL  WINAPI cd_Login          (cdp_t cdp, const char * username, const char * password);
  680. DllKernel BOOL  WINAPI cd_Logout         (cdp_t cdp);
  681. DllKernel BOOL  WINAPI cd_Set_application(cdp_t cdp, const char * applname);
  682. DllKernel BOOL  WINAPI cd_Set_application_ex(cdp_t cdp, const char * applname, BOOL extended);
  683.  
  684.   // jine funkce serveru:
  685. DllKernel BOOL WINAPI cd_SQL_execute(cdp_t cdp, const char * statement, uns32 * results);
  686. DllKernel BOOL WINAPI cd_SQL_prepare(cdp_t cdp, const char * statement, uns32 * handle);
  687. DllKernel BOOL WINAPI cd_SQL_exec_prepared(cdp_t cdp, uns32 handle, uns32 * results, int * count);
  688. DllKernel BOOL WINAPI cd_SQL_drop(cdp_t cdp, uns32 handle);
  689. DllKernel BOOL WINAPI cd_Set_sql_option(cdp_t cdp, uns32 optmask, uns32 optval);
  690. DllKernel BOOL WINAPI cd_Break(cdp_t cdp);
  691. DllKernel BOOL WINAPI cd_Message_to_clients(cdp_t cdp, const char * msg);
  692. DllKernel BOOL WINAPI cd_Set_progress_report_modulus(cdp_t cdp, unsigned modulus);
  693.  
  694.   // manipulace s tabulkou:
  695. DllKernel BOOL WINAPI cd_Enable_index(cdp_t cdp, ttablenum table, int which, BOOL enable);
  696. DllKernel BOOL WINAPI cd_Free_deleted(cdp_t cdp, ttablenum table);
  697. DllKernel BOOL WINAPI cd_Compact_table(cdp_t cdp, ttablenum table);
  698.  
  699.   // agregacni funkce:
  700. DllKernel BOOL WINAPI cd_C_sum  (cdp_t cdp, tcursnum curs, const char * attrname,
  701.   const char * condition, void * result);
  702. DllKernel BOOL WINAPI cd_C_max  (cdp_t cdp, tcursnum curs, const char * attrname,
  703.   const char * condition, void * result);
  704. DllKernel BOOL WINAPI cd_C_min  (cdp_t cdp, tcursnum curs, const char * attrname,
  705.   const char * condition, void * result);
  706. DllKernel BOOL WINAPI cd_C_count(cdp_t cdp, tcursnum curs, const char * attrname,
  707.   const char * condition, trecnum * result);
  708. DllKernel BOOL WINAPI cd_C_avg  (cdp_t cdp, tcursnum curs, const char * attrname,
  709.   const char * condition, void * result);
  710.  
  711.   // ODBC:
  712. DllKernel BOOL  WINAPI cd_ODBC_open_cursor      (cdp_t cdp, uns32 connection, tcursnum * curs, const char * query);
  713. DllKernel uns32 WINAPI cd_ODBC_find_connection  (cdp_t cdp, const char * dsn_name);
  714. DllKernel uns32 WINAPI cd_ODBC_create_connection(cdp_t cdp, const char * dsn_name);
  715. DllKernel uns32 WINAPI cd_ODBC_direct_connection(cdp_t cdp, const char * conn_string);
  716.  
  717.   // informace o atributech:
  718. typedef BOOL (WINAPI enum_attr)(char * attrname, uns8 attrtype,
  719.                                      uns8 attrmult, uns16 attrspecif);
  720. DllKernel BOOL WINAPI cd_Enum_attributes(cdp_t cdp, ttablenum table, enum_attr * callback);
  721. DllKernel BOOL WINAPI cd_Attribute_info(cdp_t cdp, ttablenum table, const char * attrname,
  722.        tattrib * attrnum, uns8 * attrtype, uns8 * attrmult, uns16 * attrspecif);
  723.  
  724.   // podpisy a replikace:
  725. DllKernel BOOL WINAPI cd_Signature(cdp_t cdp, window_id hParent, tcursnum cursor, trecnum recnum, tattrib attr, BOOL create, void * param);
  726. DllKernel BOOL WINAPI cd_Repl_control(cdp_t cdp, int optype, int opparsize, void * opparam);
  727. DllKernel BOOL WINAPI cd_Replicate(cdp_t cdp, const char * ServerName, const char * ApplName, BOOL pull);
  728. DllKernel BOOL WINAPI cd_Reset_replication(cdp_t cdp);
  729. DllKernel BOOL WINAPI cd_GetSet_next_user(cdp_t cdp, tcurstab curs,
  730.   trecnum position, tattrib attr, t_oper operation, t_valtype valtype, void * value);
  731.  
  732. #ifdef __cplusplus
  733.  } /* of extern "C" */
  734. #endif
  735.  
  736. /******* Typy atributu (vyuziji se pri volani funkce Enum_attributes) *******/
  737. #define ATT_BOOLEAN    1            /* Boolean */
  738. #define ATT_CHAR       2            /* Char */
  739. #define ATT_INT16      3            /* Short */
  740. #define ATT_INT32      4            /* Integer */
  741. #define ATT_MONEY      5            /* Money */
  742. #define ATT_FLOAT      6            /* Real */
  743. #define ATT_STRING     7            /* String */
  744. #define ATT_CSSTRING   8            /* CSString */
  745. #define ATT_CSISTRING  9            /* CSIString */
  746. #define ATT_BINARY    10            /* Binary */
  747. #define ATT_DATE      11            /* Date */
  748. #define ATT_TIME      12            /* Time */
  749. #define ATT_TIMESTAMP 13            /* Timestamp */
  750. #define ATT_PTR       14            /* Pointer */
  751. #define ATT_BIPTR     15            /* Bipointer */
  752.  
  753. #define ATT_AUTOR     16            /* sledovaci atribut: Autorizace */
  754. #define ATT_DATIM     17            /* sledovaci atribut: Datumovka */
  755. #define ATT_HIST      18            /* sledovaci atribut: Historie */
  756.  
  757. #define ATT_RASTER    19            /* Raster */
  758. #define ATT_TEXT      20            /* Text */
  759. #define ATT_NOSPEC    21            /* Nospec */
  760. #define ATT_SIGNAT    22            /* Signature */
  761.  
  762. #endif  /* !def __WBKERNEL_H__ */
  763.  
  764.