ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

query.h
Go to the documentation of this file.
00001 /*
00002  * Implementation of the Microsoft Installer (msi.dll)
00003  *
00004  * Copyright 2002 Mike McCormack for CodeWeavers
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifndef __WINE_MSI_QUERY_H
00022 #define __WINE_MSI_QUERY_H
00023 
00024 #include <stdarg.h>
00025 
00026 #include "windef.h"
00027 #include "winbase.h"
00028 #include "objbase.h"
00029 #include "objidl.h"
00030 #include "msi.h"
00031 #include "msiquery.h"
00032 #include "msipriv.h"
00033 #include "wine/list.h"
00034 
00035 
00036 #define OP_EQ       1
00037 #define OP_AND      2
00038 #define OP_OR       3
00039 #define OP_GT       4
00040 #define OP_LT       5
00041 #define OP_LE       6
00042 #define OP_GE       7
00043 #define OP_NE       8
00044 #define OP_ISNULL   9
00045 #define OP_NOTNULL  10
00046 
00047 #define EXPR_COMPLEX  1
00048 #define EXPR_COLUMN   2
00049 #define EXPR_COL_NUMBER 3
00050 #define EXPR_IVAL     4
00051 #define EXPR_SVAL     5
00052 #define EXPR_UVAL     6
00053 #define EXPR_STRCMP   7
00054 #define EXPR_WILDCARD 9
00055 #define EXPR_COL_NUMBER_STRING 10
00056 #define EXPR_COL_NUMBER32 11
00057 #define EXPR_UNARY    12
00058 
00059 struct sql_str {
00060     LPCWSTR data;
00061     INT len;
00062 };
00063 
00064 struct complex_expr
00065 {
00066     UINT op;
00067     struct expr *left;
00068     struct expr *right;
00069 };
00070 
00071 struct tagJOINTABLE;
00072 union ext_column
00073 {
00074     struct
00075     {
00076         LPCWSTR column;
00077         LPCWSTR table;
00078     } unparsed;
00079     struct
00080     {
00081         UINT column;
00082         struct tagJOINTABLE *table;
00083     } parsed;
00084 };
00085 
00086 struct expr
00087 {
00088     int type;
00089     union
00090     {
00091         struct complex_expr expr;
00092         INT   ival;
00093         UINT  uval;
00094         LPCWSTR sval;
00095         union ext_column column;
00096     } u;
00097 };
00098 
00099 UINT MSI_ParseSQL( MSIDATABASE *db, LPCWSTR command, MSIVIEW **phview,
00100                    struct list *mem ) DECLSPEC_HIDDEN;
00101 
00102 UINT TABLE_CreateView( MSIDATABASE *db, LPCWSTR name, MSIVIEW **view ) DECLSPEC_HIDDEN;
00103 
00104 UINT SELECT_CreateView( MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table,
00105                         const column_info *columns ) DECLSPEC_HIDDEN;
00106 
00107 UINT DISTINCT_CreateView( MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table ) DECLSPEC_HIDDEN;
00108 
00109 UINT ORDER_CreateView( MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table,
00110                        column_info *columns ) DECLSPEC_HIDDEN;
00111 
00112 UINT WHERE_CreateView( MSIDATABASE *db, MSIVIEW **view, LPWSTR tables,
00113                        struct expr *cond ) DECLSPEC_HIDDEN;
00114 
00115 UINT CREATE_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR table,
00116                         column_info *col_info, BOOL hold ) DECLSPEC_HIDDEN;
00117 
00118 UINT INSERT_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR table,
00119                         column_info *columns, column_info *values, BOOL temp ) DECLSPEC_HIDDEN;
00120 
00121 UINT UPDATE_CreateView( MSIDATABASE *db, MSIVIEW **view, LPWSTR table,
00122                         column_info *list, struct expr *expr ) DECLSPEC_HIDDEN;
00123 
00124 UINT DELETE_CreateView( MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table ) DECLSPEC_HIDDEN;
00125 
00126 UINT ALTER_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, column_info *colinfo, int hold ) DECLSPEC_HIDDEN;
00127 
00128 UINT STREAMS_CreateView( MSIDATABASE *db, MSIVIEW **view ) DECLSPEC_HIDDEN;
00129 
00130 UINT STORAGES_CreateView( MSIDATABASE *db, MSIVIEW **view ) DECLSPEC_HIDDEN;
00131 
00132 UINT DROP_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR name ) DECLSPEC_HIDDEN;
00133 
00134 int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN;
00135 
00136 MSIRECORD *msi_query_merge_record( UINT fields, const column_info *vl, MSIRECORD *rec ) DECLSPEC_HIDDEN;
00137 
00138 UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info,
00139                        MSICONDITION persistent ) DECLSPEC_HIDDEN;
00140 
00141 #endif /* __WINE_MSI_QUERY_H */

Generated on Sun May 27 2012 04:25:19 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.