dmlib: Add Oracle dirty hack cleanup to recordset_to_menu() get_field_sql() and get_fieldset_sql()

This covers most (all?) the gaps in data retrieval except get_recordset_sql().

To tackle get_recordset_sql,  where the actual data retrieval is done within
AdoDB, we would have to to wrap around AdoDB with a subclass, but that would
be dirty, dirty, dirtier.
This commit is contained in:
martinlanghoff
2006-09-26 05:10:18 +00:00
parent 44f9885044
commit 5a55af6097
+20
View File
@@ -766,6 +766,12 @@ function recordset_to_menu($rs) {
$menu[$rs->fields[$key0]] = $rs->fields[$key1];
$rs->MoveNext();
}
/// Really DIRTY HACK for Oracle, but it's the only way to make it work
/// until we got all those NOT NULL DEFAULT '' out from Moodle
if ($CFG->dbtype == 'oci8po') {
array_walk($menu, 'onespace2empty');
}
/// End of DIRTY HACK
return $menu;
} else {
return false;
@@ -872,6 +878,13 @@ function get_field_sql($sql) {
$rs = get_recordset_sql($sql);
if ($rs && $rs->RecordCount() == 1) {
/// DIRTY HACK to retrieve all the ' ' (1 space) fields converted back
/// to '' (empty string) for Oracle. It's the only way to work with
/// all those NOT NULL DEFAULT '' fields until we definetively delete them
if ($CFG->dbtype == 'oci8po') {
return onespace2empty(reset($rs->fields));
}
/// End of DIRTY HACK
return reset($rs->fields);
} else {
return false;
@@ -912,6 +925,13 @@ function get_fieldset_sql($sql) {
array_push($results, $rs->fields[$key0]);
$rs->MoveNext();
}
/// DIRTY HACK to retrieve all the ' ' (1 space) fields converted back
/// to '' (empty string) for Oracle. It's the only way to work with
/// all those NOT NULL DEFAULT '' fields until we definetively delete them
if ($CFG->dbtype == 'oci8po') {
array_walk($results, 'onespace2empty');
}
/// End of DIRTY HACK
return $results;
} else {
return false;