def SpecialColumns(self, identifierType, CatalogName, SchemaName, TableName, scope, nullable, handler, row, rh, canceled=None): q = CScopeUQueue.Lock().SaveShort(identifierType).SaveString( CatalogName).SaveString(SchemaName).SaveString( TableName).SaveShort(scope).SaveShort(nullable) cb = CAsyncDBHandler.Pair(COdbc.idSQLSpecialColumns, handler) index = self.GetCallIndex() q.SaveULong(index) ok = True with self._csOneSending: with self._csDB: self._mapRowset[index] = CAsyncDBHandler.Pair(rh, row) self._deqResult.append(cb) ok = self.SendRequest(COdbc.idSQLSpecialColumns, q, None, canceled) if not ok: with self._csDB: self._deqResult.remove(cb) self._mapRowset.pop(index) CScopeUQueue.Unlock(q) return ok
def ForeignKeys(self, PKCatalogName, PKSchemaName, PKTableName, FKCatalogName, FKSchemaName, FKTableName, handler, row, rh, canceled=None): q = CScopeUQueue.Lock().SaveString(PKCatalogName).SaveString( PKSchemaName).SaveString(PKTableName).SaveString( FKCatalogName).SaveString(FKSchemaName).SaveString(FKTableName) cb = CAsyncDBHandler.Pair(COdbc.idSQLForeignKeys, handler) index = self.GetCallIndex() q.SaveULong(index) ok = True with self._csOneSending: with self._csDB: self._mapRowset[index] = CAsyncDBHandler.Pair(rh, row) self._deqResult.append(cb) ok = self.SendRequest(COdbc.idSQLForeignKeys, q, None, canceled) if not ok: with self._csDB: self._deqResult.remove(cb) self._mapRowset.pop(index) CScopeUQueue.Unlock(q) return ok
def Statistics(self, CatalogName, SchemaName, TableName, unique, reserved, handler, row, rh, canceled=None): q = CScopeUQueue.Lock().SaveString(CatalogName).SaveString( SchemaName).SaveString(TableName).SaveUShort(unique).SaveUShort( reserved) cb = CAsyncDBHandler.Pair(COdbc.idSQLStatistics, handler) index = self.GetCallIndex() q.SaveULong(index) with self._csOneSending: with self._csDB: self._mapRowset[index] = CAsyncDBHandler.Pair(rh, row) self._deqResult.append(cb) ok = self.SendRequest(COdbc.idSQLStatistics, q, None, canceled) if not ok: with self._csDB: self._deqResult.remove(cb) self._mapRowset.pop(index) CScopeUQueue.Unlock(q) return ok
def _DoMeta3(self, id, s0, s1, s2, handler, row, rh, canceled): q = CScopeUQueue.Lock().SaveString(s0).SaveString(s1).SaveString(s2) cb = CAsyncDBHandler.Pair(id, handler) index = self.GetCallIndex() q.SaveULong(index) ok = True with self._csOneSending: with self._csDB: self._mapRowset[index] = CAsyncDBHandler.Pair(rh, row) self._deqResult.append(cb) ok = self.SendRequest(id, q, None, canceled) if not ok: with self._csDB: self._deqResult.remove(cb) self._mapRowset.pop(index) CScopeUQueue.Unlock(q) return ok
def _DoMeta4(self, id, s0, s1, s2, s3, handler, row, rh): q = CScopeUQueue.Lock().SaveString(s0).SaveString(s1).SaveString(s2).SaveString(s3) cb = CAsyncDBHandler.Pair(id, handler) index = 0 ok = True with self._csDB: self._nCall += 1 index = self._nCall self._mapRowset[index] = CAsyncDBHandler.Pair(rh, row) self._deqResult.append(cb) q.SaveULong(index) ok = self.SendRequest(id, q, None) if not ok: with self._csDB: self._deqResult.remove(cb) self._mapRowset.pop(index) CScopeUQueue.Unlock(q) return ok