// Copyright (c) 2004-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as published by // the Free Software Foundation // // There are special exceptions to the terms and conditions of the GPL // as it is applied to this software. View the full text of the // exception in file EXCEPTIONS in the directory of this software // distribution. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace MySql.Data.MySqlClient { /// /// Summary description for ClientParam. /// [Flags] internal enum ClientFlags : ulong { LONG_PASSWORD = 1, // new more secure passwords FOUND_ROWS = 2, // found instead of affected rows LONG_FLAG = 4, // Get all column flags CONNECT_WITH_DB = 8, // One can specify db on connect NO_SCHEMA = 16, // Don't allow db.table.column COMPRESS = 32, // Client can use compression protocol ODBC = 64, // ODBC client LOCAL_FILES = 128, // Can use LOAD DATA LOCAL IGNORE_SPACE = 256, // Ignore spaces before '(' PROTOCOL_41 = 512, // Support new 4.1 protocol INTERACTIVE = 1024, // This is an interactive client SSL = 2048, // Switch to SSL after handshake IGNORE_SIGPIPE = 4096, // IGNORE sigpipes TRANSACTIONS = 8192, // Client knows about transactions RESERVED = 16384, // old 4.1 protocol flag SECURE_CONNECTION = 32768, // new 4.1 authentication MULTI_STATEMENTS = 65536, // Allow multi-stmt support MULTI_RESULTS = 131072, // Allow multiple resultsets PS_MULTI_RESULTS = 1UL << 18 // allow multi results using PS protocol } [Flags] internal enum ServerStatusFlags { InTransaction = 1, // Transaction has started AutoCommitMode = 2, // Server in auto_commit mode MoreResults = 4, // More results on server AnotherQuery = 8, // Multi query - next query exists BadIndex = 16, NoIndex = 32, CursorExists = 64, LastRowSent = 128, OutputParameters = 4096 } /// /// DB Operations Code /// internal enum DBCmd : byte { SLEEP = 0, QUIT = 1, INIT_DB = 2, QUERY = 3, FIELD_LIST = 4, CREATE_DB = 5, DROP_DB = 6, RELOAD = 7, SHUTDOWN = 8, STATISTICS = 9, PROCESS_INFO = 10, CONNECT = 11, PROCESS_KILL = 12, DEBUG = 13, PING = 14, TIME = 15, DELAYED_INSERT = 16, CHANGE_USER = 17, BINLOG_DUMP = 18, TABLE_DUMP = 19, CONNECT_OUT = 20, REGISTER_SLAVE = 21, PREPARE = 22, EXECUTE = 23, LONG_DATA = 24, CLOSE_STMT = 25, RESET_STMT = 26, SET_OPTION = 27, FETCH = 28 } /// /// Specifies MySQL specific data type of a field, property, for use in a . /// public enum MySqlDbType { /// /// /// A fixed precision and scale numeric value between -1038 /// -1 and 10 38 -1. /// Decimal = 0, /// /// The signed range is -128 to 127. The unsigned /// range is 0 to 255. /// Byte = 1, /// /// A 16-bit signed integer. The signed range is /// -32768 to 32767. The unsigned range is 0 to 65535 /// Int16 = 2, /// /// Specifies a 24 (3 byte) signed or unsigned value. /// Int24 = 9, /// /// A 32-bit signed integer /// Int32 = 3, /// /// A 64-bit signed integer. /// Int64 = 8, /// /// A small (single-precision) floating-point /// number. Allowable values are -3.402823466E+38 to -1.175494351E-38, /// 0, and 1.175494351E-38 to 3.402823466E+38. /// Float = 4, /// /// A normal-size (double-precision) /// floating-point number. Allowable values are -1.7976931348623157E+308 /// to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to /// 1.7976931348623157E+308. /// Double = 5, /// /// A timestamp. The range is '1970-01-01 00:00:00' to sometime in the /// year 2037 /// Timestamp = 7, /// ///Date The supported range is '1000-01-01' to '9999-12-31'. /// Date = 10, /// /// Time The range is '-838:59:59' to '838:59:59'. /// Time = 11, /// ///DateTime The supported range is '1000-01-01 00:00:00' to ///'9999-12-31 23:59:59'. /// DateTime = 12, /// ///Datetime The supported range is '1000-01-01 00:00:00' to ///'9999-12-31 23:59:59'. /// [Obsolete("The Datetime enum value is obsolete. Please use DateTime.")] Datetime = 12, /// /// A year in 2- or 4-digit format (default is 4-digit). The /// allowable values are 1901 to 2155, 0000 in the 4-digit year /// format, and 1970-2069 if you use the 2-digit format (70-69). /// Year = 13, /// /// Obsolete Use Datetime or Date type /// Newdate = 14, /// /// A variable-length string containing 0 to 65535 characters /// VarString = 15, /// /// Bit-field data type /// Bit = 16, /// /// New Decimal /// NewDecimal = 246, /// /// An enumeration. A string object that can have only one value, /// chosen from the list of values 'value1', 'value2', ..., NULL /// or the special "" error value. An ENUM can have a maximum of /// 65535 distinct values /// Enum = 247, /// /// A set. A string object that can have zero or more values, each /// of which must be chosen from the list of values 'value1', 'value2', /// ... A SET can have a maximum of 64 members. /// Set = 248, /// /// A binary column with a maximum length of 255 (2^8 - 1) /// characters /// TinyBlob = 249, /// /// A binary column with a maximum length of 16777215 (2^24 - 1) bytes. /// MediumBlob = 250, /// /// A binary column with a maximum length of 4294967295 or /// 4G (2^32 - 1) bytes. /// LongBlob = 251, /// /// A binary column with a maximum length of 65535 (2^16 - 1) bytes. /// Blob = 252, /// /// A variable-length string containing 0 to 255 bytes. /// VarChar = 253, /// /// A fixed-length string. /// String = 254, /// /// Geometric (GIS) data type. /// Geometry = 255, /// /// Unsigned 8-bit value. /// UByte = 501, /// /// Unsigned 16-bit value. /// UInt16 = 502, /// /// Unsigned 24-bit value. /// UInt24 = 509, /// /// Unsigned 32-bit value. /// UInt32 = 503, /// /// Unsigned 64-bit value. /// UInt64 = 508, /// /// Fixed length binary string. /// Binary = 600, /// /// Variable length binary string. /// VarBinary = 601, /// /// A text column with a maximum length of 255 (2^8 - 1) characters. /// TinyText = 749, /// /// A text column with a maximum length of 16777215 (2^24 - 1) characters. /// MediumText = 750, /// /// A text column with a maximum length of 4294967295 or /// 4G (2^32 - 1) characters. /// LongText = 751, /// /// A text column with a maximum length of 65535 (2^16 - 1) characters. /// Text = 752, /// /// A guid column /// Guid = 800 } ; internal enum Field_Type : byte { DECIMAL = 0, BYTE = 1, SHORT = 2, LONG = 3, FLOAT = 4, DOUBLE = 5, NULL = 6, TIMESTAMP = 7, LONGLONG = 8, INT24 = 9, DATE = 10, TIME = 11, DATETIME = 12, YEAR = 13, NEWDATE = 14, ENUM = 247, SET = 248, TINY_BLOB = 249, MEDIUM_BLOB = 250, LONG_BLOB = 251, BLOB = 252, VAR_STRING = 253, STRING = 254, } /// /// Allows the user to specify the type of connection that should /// be used. /// public enum MySqlConnectionProtocol { /// /// TCP/IP style connection. Works everywhere. /// Sockets = 1, Socket = 1, Tcp = 1, /// /// Named pipe connection. Works only on Windows systems. /// Pipe = 2, NamedPipe = 2, /// /// Unix domain socket connection. Works only with Unix systems. /// UnixSocket = 3, Unix = 3, /// /// Shared memory connection. Currently works only with Windows systems. /// SharedMemory = 4, Memory = 4 } /// /// SSL options for connection. /// public enum MySqlSslMode { /// /// Do not use SSL. /// None, /// /// Use SSL, if server supports it. /// Preferred, Prefered = Preferred, /// /// Always use SSL. Deny connection if server does not support SSL. /// Do not perform server certificate validation. /// Required, /// /// Always use SSL. Validate server SSL certificate, but different host name mismatch. /// VerifyCA, /// /// Always use SSL and perform full certificate validation. /// VerifyFull } /// /// Specifies the connection types supported /// public enum MySqlDriverType { /// /// Use TCP/IP sockets. /// Native, /// /// Use client library. /// Client, /// /// Use MySQL embedded server. /// Embedded } public enum MySqlCertificateStoreLocation { /// /// Do not use certificate store /// None, /// /// Use certificate store for the current user /// CurrentUser, /// /// User certificate store for the machine /// LocalMachine } }