Permalink
Browse files

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.
  • Loading branch information...
1 parent 44f9885 commit 5a55af6097e242ba4d9a5dbb5e53b655a170fc45 martinlanghoff committed Sep 26, 2006
Showing with 20 additions and 0 deletions.
  1. +20 −0 lib/dmllib.php
View
@@ -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;

0 comments on commit 5a55af6

Please sign in to comment.