create static method
NSQuery
create(
- NSDatabase database,
- String tableName, {
- Pointer<
ns_transaction_t> ? txn, - List<
String> ? orderBy,
Implementation
static NSQuery create(
NSDatabase database,
String tableName, {
Pointer<ns_transaction_t>? txn,
List<String>? orderBy,
}) {
final db = database.handle;
final tablePtr = tableName.toNativeUtf8().cast<Char>();
Pointer<Pointer<Char>>? orderPtr;
try {
if (orderBy != null && orderBy.isNotEmpty) {
orderPtr = calloc<Pointer<Char>>(orderBy.length + 1);
for (var i = 0; i < orderBy.length; i++) {
orderPtr[i] = orderBy[i].toNativeUtf8().cast<Char>();
}
orderPtr[orderBy.length] = nullptr;
}
final query = nosqueel.ns_query_create(tablePtr, orderPtr ?? nullptr);
if (query == nullptr) {
throw StateError('ns_query_create failed for "$tableName"');
}
return NSQuery._(database, db, query, tableName, txn: txn);
} finally {
calloc.free(tablePtr);
if (orderPtr != null) {
for (var i = 0; i < orderBy!.length; i++) {
calloc.free(orderPtr[i]);
}
calloc.free(orderPtr);
}
}
}