libs-gdl2/EOAdaptors/PostgreSQLAdaptor/PostgreSQLChannel.h
Dave Wetzel d193acd41c * EOAccess/EOEntity.m
Added comment. Please check this! 
	* EOAccess/EODatabaseContext.m
	include NSObject+GNUstepBase.h
	avoid Enumerator exception.
	* EOAccess/EOUtilities.m
	split line into two
	* EOAccess/EOAdaptorChannel.h/m
	unsigned -> NSUInteger
	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLChannel.h
	removed _describeResults
	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLChannel.m
	include NSObject+GNUstepBase.h
	added numberOfAffectedRows
	attribute naming in raw rows fixed
	updating fixed
	unsigned -> NSUInteger



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@30586 72102866-910b-0410-8b05-ffd578937521
2010-06-06 08:52:37 +00:00

105 lines
3.1 KiB
Objective-C

/* -*-objc-*-
PostgreSQLChannel.h
Copyright (C) 2000,2002,2003,2004,2005 Free Software Foundation, Inc.
Author: Mirko Viviani <mirko.viviani@gmail.com>
Date: February 2000
based on the PostgreSQL adaptor written by
Mircea Oancea <mircea@jupiter.elcom.pub.ro>
This file is part of the GNUstep Database Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __PostgreSQLChannel_h__
#define __PostgreSQLChannel_h__
#include <EOAccess/EOAdaptorChannel.h>
/* Include PostgreSQL Headers */
#undef Assert
#include <stdio.h>
#include <libpq-fe.h>
#include <libpq/libpq-fs.h>
#include <pg_config.h>
#undef Assert
@class NSString;
@class NSMutableDictionary;
@class NSMutableArray;
@class EOAttribute;
@class PostgreSQLContext;
@interface PostgreSQLChannel : EOAdaptorChannel
{
PostgreSQLContext *_adaptorContext;
PGconn *_pgConn;
PGresult *_pgResult;
NSArray *_attributes;
NSArray *_origAttributes;
EOSQLExpression *_sqlExpression;
int _currentResultRow;
NSMutableDictionary *_oidToTypeName;
BOOL _isFetchInProgress;
BOOL _evaluateExprInProgress;
BOOL _fetchBlobsOid;
NSArray *_pkAttributeArray;
int _pgVersion;
NSStringEncoding _encoding;
struct {
unsigned int postgresInsertedRowOid:1;
unsigned int postgresNotification:1;
} _postgresDelegateRespondsTo;
}
- (PGconn*)pgConn;
- (PGresult*)pgResult;
- (BOOL)advanceRow;
- (void)cleanupFetch;
- (void)_cancelResults;
- (void)_readServerVersion;
/* Extensions for login panel */
- (NSArray *)describeDatabaseNames;
- (BOOL)userNameIsAdministrative:(NSString*)userName;
/* Private methods */
- (char*)_readBinaryDataRow: (Oid)oid length: (int*)length zone: (NSZone*)zone;
- (Oid)_insertBinaryData: (NSData*)binaryData forAttribute: (EOAttribute*)attr;
- (Oid)_updateBinaryDataRow: (Oid)oid data: (NSData*)binaryData;
- (void)_describeDatabaseTypes;
- (NSUInteger)_evaluateExpression: (EOSQLExpression *)expression
withAttributes: (NSArray*)attributes;
@end
@interface NSObject (PostgreSQLChannelDelegate)
- (void)postgresChannel: (PostgreSQLChannel*)channel
insertedRowWithOid: (Oid)oid;
- (void)postgresChannel: (PostgreSQLChannel*)channel
receivedNotification: (NSString*)notification;
@end
#endif /* __PostgreSQLChannel_h__ */