Changeset 21856
- Timestamp:
- 2010-03-31T23:08:43+13:00 (14 years ago)
- Location:
- main/trunk/greenstone2/perllib
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/dbutil.pm
r21550 r21856 226 226 227 227 228 sub write_infodb_rawentry 229 { 230 my $infodb_type = shift(@_); 231 my $infodb_handle = shift(@_); 232 my $infodb_key = shift(@_); 233 my $infodb_val = shift(@_); 234 235 if ($infodb_type eq "sqlite") 236 { 237 require dbutil::sqlite; 238 return &dbutil::sqlite::write_infodb_rawentry($infodb_handle, $infodb_key, $infodb_val, @_); 239 } 240 elsif ($infodb_type eq "gdbm-txtgz") 241 { 242 require dbutil::gdbmtxtgz; 243 return &dbutil::gdbmtxtgz::write_infodb_rawentry($infodb_handle, $infodb_key, $infodb_val, @_); 244 } 245 elsif ($infodb_type eq "jdbm") 246 { 247 require dbutil::jdbm; 248 return &dbutil::jdbm::write_infodb_rawentry($infodb_handle, $infodb_key, $infodb_val, @_); 249 } 250 elsif ($infodb_type eq "mssql") 251 { 252 require dbutil::mssql; 253 return &dbutil::mssql::write_infodb_rawentry($infodb_handle, $infodb_key, $infodb_val, @_); 254 } 255 256 # Use GDBM if the infodb type is empty or not one of the values above 257 require dbutil::gdbm; 258 return &dbutil::gdbm::write_infodb_rawentry($infodb_handle, $infodb_key, $infodb_val, @_); 259 } 260 261 262 228 263 sub delete_infodb_entry 229 264 { -
main/trunk/greenstone2/perllib/dbutil/gdbm.pm
r21545 r21856 132 132 } 133 133 134 sub write_infodb_rawentry 135 { 136 # With infodb_handle already set up, works the same as _gdbm_txtgz version 137 &dbutil::gdbmtxtgz::write_infodb_rawentry(@_); 138 } 139 140 134 141 sub delete_infodb_entry 135 142 { -
main/trunk/greenstone2/perllib/dbutil/gdbmtxtgz.pm
r21411 r21856 138 138 139 139 140 141 sub write_infodb_rawentry 142 { 143 144 my $infodb_handle = shift(@_); 145 my $infodb_key = shift(@_); 146 my $infodb_val = shift(@_); 147 148 print $infodb_handle "[$infodb_key]\n"; 149 print $infodb_handle "$infodb_val\n"; 150 print $infodb_handle '-' x 70, "\n"; 151 } 152 153 154 140 155 sub delete_infodb_entry 141 156 { -
main/trunk/greenstone2/perllib/dbutil/jdbm.pm
r21411 r21856 181 181 182 182 183 sub write_infodb_rawentry 184 { 185 186 my $infodb_handle = shift(@_); 187 my $infodb_key = shift(@_); 188 my $infodb_val = shift(@_); 189 190 print $infodb_handle "[$infodb_key]\n"; 191 print $infodb_handle "$infodb_val\n"; 192 print $infodb_handle '-' x 70, "\n"; 193 } 194 195 183 196 sub delete_infodb_entry 184 197 { -
main/trunk/greenstone2/perllib/dbutil/mssql.pm
r21411 r21856 140 140 my $infodb_map = shift(@_); 141 141 142 # !! TO IMPLEMENT 142 print STDERR "******* mssql::read_infodb_file() TO BE IMPLEMENTED!\n"; 143 print STDERR "******* See sqlite.pm for comparable implementation that has been coded up!\n"; 143 144 } 144 145 … … 199 200 } 200 201 202 203 sub write_infodb_rawentry 204 { 205 my $infodb_handle = shift(@_); 206 my $infodb_key = shift(@_); 207 my $infodb_val = shift(@_); 208 209 # Prepare the query 210 my $safe_infodb_key = &mssql_safe($infodb_key); 211 my $query = "INSERT INTO " . $mssql_data_table_name . " (one_key, one_value) VALUES (N'" . $safe_infodb_key . "', N'" . &mssql_safe($infodb_val) . "')"; 212 dbquery($infodb_handle, $query); 213 } 214 201 215 sub delete_infodb_entry 202 216 { -
main/trunk/greenstone2/perllib/dbutil/sqlite.pm
r21411 r21856 72 72 73 73 74 sub read_infodb_cmd 75 { 76 my $infodb_file_path = shift(@_); 77 my $sqlcmd = shift(@_); 78 79 my $result = ""; 80 81 my $sqlite3_exe = &util::filename_cat($ENV{'GSDLHOME'},"bin",$ENV{'GSDLOS'}, "sqlite3" . &util::get_os_exe()); 82 my $infodb_handle = undef; 83 my $cmd = "echo \"$sqlcmd\" | \"$sqlite3_exe\" \"$infodb_file_path\""; 84 85 if (!-e "$sqlite3_exe" || !open($infodb_handle, "$cmd |")) 86 { 87 print STDERR "Unable to execute: $cmd\n"; 88 print STDERR "$!\n"; 89 } 90 else { 91 92 my $line; 93 while (defined($line=<$infodb_handle>)) { 94 $result .= $line; 95 } 96 97 close($infodb_handle); 98 } 99 100 return $result; 101 } 102 74 103 sub get_infodb_file_path 75 104 { … … 88 117 my $infodb_map = shift(@_); 89 118 90 # !! TO IMPLEMENT 119 120 my $keys_str = read_infodb_cmd($infodb_file_path,"SELECT key FROM data;"); 121 122 my @keys = split(/\n/,$keys_str); 123 124 foreach my $k (@keys) { 125 126 my $k_safe = &sqlite_safe($k); 127 my $select_val_cmd = "SELECT value FROM data WHERE key='$k_safe';"; 128 129 my $val_str = read_infodb_cmd($infodb_file_path,$select_val_cmd); 130 131 $infodb_map->{$k} = $val_str; 132 } 133 91 134 } 92 135 … … 146 189 147 190 191 sub write_infodb_rawentry 192 { 193 my $infodb_handle = shift(@_); 194 my $infodb_key = shift(@_); 195 my $infodb_val = shift(@_); 196 197 my $safe_infodb_key = &sqlite_safe($infodb_key); 198 print $infodb_handle "INSERT OR REPLACE INTO data (key, value) VALUES ('" . $safe_infodb_key . "', '" . &sqlite_safe($infodb_val) . "');\n"; 199 } 200 201 202 148 203 sub delete_infodb_entry 149 204 {
Note:
See TracChangeset
for help on using the changeset viewer.