// // MCPConnection.h // SMySQL // // Created by serge cohen (serge.cohen@m4x.org) on Sat Dec 08 2001. // Copyright (c) 2001 Serge Cohen. // // This code is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2 of the License, or any later version. // // This code 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. // // For a copy of the GNU General Public License, visit or // write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, // Boston, MA 02111-1307, USA. // // More info at // // $Id: MCPConnection.h 335 2006-01-08 21:14:07Z serge $ // $Author: serge $ #import #import "mysql.h" #import "MCPConstants.h" @class MCPResult; // Deafult connection option extern const unsigned int kMCPConnectionDefaultOption; // Default socket (from the mysql.h used at compile time) extern const char *kMCPConnectionDefaultSocket; // Added to mysql error code extern const unsigned int kMCPConnectionNotInited; // The length of the truncation if required: extern const unsigned int kLengthOfTruncationForLog; @interface MCPConnection : NSObject { @protected MYSQL *mConnection; /*"The inited MySQL connection."*/ BOOL mConnected; /*"Reflect the fact that the connection is already in place or not."*/ NSStringEncoding mEncoding; /*"The encoding used by MySQL server, to ISO-1 default."*/ NSTimeZone *mTimeZone; /*"The time zone of the session."*/ unsigned int mConnectionFlags; /*"The flags to be used for the connection to the database."*/ } /*" Getting default of MySQL "*/ + (NSDictionary *) getMySQLLocales; + (NSStringEncoding) encodingForMySQLEncoding:(const char *) mysqlEncoding; + (NSStringEncoding) defaultMySQLEncoding; /*" Class maintenance "*/ + (void) initialize; + (void) setLogQueries:(BOOL) iLogFlag; + (void) setTruncateLongFieldInLogs:(BOOL) iTruncFlag; + (BOOL) truncateLongField; /*" Initialisation "*/ - (id) init; // Port to 0 to use the default port - (id) initToHost:(NSString *) host withLogin:(NSString *) login password:(NSString *) pass usingPort:(int) port; - (id) initToSocket:(NSString *) socket withLogin:(NSString *) login password:(NSString *) pass; - (BOOL) setConnectionOption:(int) option toValue:(BOOL) value; // Port to 0 to use the default port - (BOOL) connectWithLogin:(NSString *) login password:(NSString *) pass host:(NSString *) host port:(int) port socket:(NSString *) socket; - (BOOL) selectDB:(NSString *) dbName; /*" Errors information "*/ - (NSString *) getLastErrorMessage; - (unsigned int) getLastErrorID; - (BOOL) isConnected; - (BOOL) checkConnection; /*" Queries "*/ - (NSString *) prepareBinaryData:(NSData *) theData; - (NSString *) prepareString:(NSString *) theString; - (NSString *) quoteObject:(id) theObject; - (MCPResult *) queryString:(NSString *) query; - (my_ulonglong) affectedRows; - (my_ulonglong) insertId; /*" Getting description of the database structure "*/ - (MCPResult *) listDBs; - (MCPResult *) listDBsLike:(NSString *) dbsName; - (MCPResult *) listTables; - (MCPResult *) listTablesLike:(NSString *) tablesName; // Next method uses SHOW TABLES FROM db to be sure that the db is not changed during this call. - (MCPResult *) listTablesFromDB:(NSString *) dbName like:(NSString *) tablesName; - (MCPResult *) listFieldsFromTable:(NSString *) tableName; - (MCPResult *) listFieldsFromTable:(NSString *) tableName like:(NSString *) fieldsName; /*" Server information and control "*/ - (NSString *) clientInfo; - (NSString *) hostInfo; - (NSString *) serverInfo; - (NSNumber *) protoInfo; - (MCPResult *) listProcesses; - (BOOL) killProcess:(unsigned long) pid; //- (BOOL)createDBWithName:(NSString *)dbName; //- (BOOL)dropDBWithName:(NSString *)dbName; /*" Disconnection "*/ - (void) disconnect; - (void) dealloc; /*" String encoding concerns (C string type to NSString). It's unlikely that users of the framework needs to use these methods which are used internally "*/ - (void) setEncoding:(NSStringEncoding) theEncoding; - (NSStringEncoding) encoding; - (const char *) cStringFromString:(NSString *) theString; - (NSString *) stringWithCString:(const char *) theCString; /*" Text data convertion to string "*/ - (NSString *) stringWithText:(NSData *) theTextData; /*" Time Zone handling ."*/ - (void) setTimeZone:(NSTimeZone *) iTimeZone; - (NSTimeZone *) timeZone; @end