mirror of
https://github.com/gnustep/libs-sqlclient.git
synced 2025-02-20 18:32:06 +00:00
add convenience method
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/sqlclient/trunk@28691 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c4c65eca9f
commit
050edb2fd4
3 changed files with 52 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2009-09-16 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* SQLClient.h:
|
||||
* SQLClient.m:
|
||||
Add convenience method to convert array of rows into an array of
|
||||
columns.
|
||||
|
||||
2009-09-08 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* SQLClient.h:
|
||||
|
|
|
@ -1046,6 +1046,13 @@ extern unsigned SQLClientTimeTick();
|
|||
*/
|
||||
- (SQLTransaction*) batch: (BOOL)stopOnFailure;
|
||||
|
||||
/**
|
||||
* Convenience method to deal with the results of a query converting the
|
||||
* normal array of records into an array of record columns. Each column
|
||||
* in the array is an array containing all the values from that column.
|
||||
*/
|
||||
- (NSMutableArray*) columns: (NSMutableArray*)records;
|
||||
|
||||
/**
|
||||
* Executes a query (like the -query:,... method) and checks the result
|
||||
* (raising an exception if the query did not contain a single record)
|
||||
|
|
38
SQLClient.m
38
SQLClient.m
|
@ -2150,6 +2150,7 @@ static unsigned int maxConnections = 8;
|
|||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
result = nil;
|
||||
[lock unlock];
|
||||
[localException raise];
|
||||
}
|
||||
|
@ -2460,6 +2461,43 @@ static unsigned int maxConnections = 8;
|
|||
return AUTORELEASE((SQLTransaction*)transaction);
|
||||
}
|
||||
|
||||
- (NSMutableArray*) columns: (NSMutableArray*)records
|
||||
{
|
||||
SQLRecord *r = [records lastObject];
|
||||
unsigned rowCount = [records count];
|
||||
unsigned colCount = [r count];
|
||||
NSMutableArray *m;
|
||||
|
||||
if (rowCount == 0 || colCount == 0)
|
||||
{
|
||||
m = [NSMutableArray array];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSMutableArray *cols[colCount];
|
||||
unsigned i;
|
||||
|
||||
m = [NSMutableArray arrayWithCapacity: colCount];
|
||||
for (i = 0; i < colCount; i++)
|
||||
{
|
||||
cols[i] = [[NSMutableArray alloc] initWithCapacity: rowCount];
|
||||
[m addObject: cols[i]];
|
||||
[cols[i] release];
|
||||
}
|
||||
for (i = 0; i < rowCount; i++)
|
||||
{
|
||||
unsigned j;
|
||||
|
||||
r = [records objectAtIndex: i];
|
||||
for (j = 0; j < colCount; j++)
|
||||
{
|
||||
[cols[j] addObject: [r objectAtIndex: j]];
|
||||
}
|
||||
}
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
- (SQLRecord*) queryRecord: (NSString*)stmt, ...
|
||||
{
|
||||
va_list ap;
|
||||
|
|
Loading…
Reference in a new issue